触发删除空白行后INSERT
问题描述:
我已经插入一组数据到数据库中,现在我想删除所有具有空值的行。我怎样才能做到这一点?这可以使用触发器完成吗?触发删除空白行后INSERT
实施例:
表丛书包含author_name
,title
,price
。
插入数据后,我想要删除author_name
列中具有空值的所有行。这是我到目前为止已经写的:
CREATE TRIGGER trigger1
AFTER INSERT
ON BOOKS
FOR EACH ROW
BEGIN
DELETE FROM BOOKS WHERE author_name = ''
END;
这不是工作:(
答
的问题是,你有没有周围用;
界定的声明BEGIN…END
如果你把丢失的;
。然而,你将需要引入元分隔符为整个定义的,因为,如果不这样做,内;
会打破它。
所以,把;
在DELETE
结束声明并介绍触发器定义之前DELIMITER
:
DELIMITER $$
CREATE TRIGGER trigger1
AFTER INSERT
ON BOOKS
FOR EACH ROW
BEGIN
DELETE FROM BOOKS WHERE author_name = '';
END
$$
另外,因为身体只包含一个声明,你可以简单地删除BEGIN…END
:
CREATE TRIGGER trigger1
AFTER INSERT
ON BOOKS
FOR EACH ROW
DELETE FROM BOOKS WHERE author_name = '';
如预期该触发器触发了? – Lion 2013-04-09 05:20:28
NO ..its显示一些语法错误..甚至可以在插入之前使用插入 – harin04 2013-04-09 05:48:33
之前删除而不是插入 – divyabharathi 2013-04-09 06:06:01