Mysql 插入后删除空行的触发器
我已经在数据库中插入了一组数据,现在我想删除所有具有空值的行。我该怎么做?这可以使用触发器来完成吗 例如: 表格图书包含作者姓名、标题、价格 插入数据后,我想删除Mysql 插入后删除空行的触发器,mysql,sql,Mysql,Sql,我已经在数据库中插入了一组数据,现在我想删除所有具有空值的行。我该怎么做?这可以使用触发器来完成吗 例如: 表格图书包含作者姓名、标题、价格 插入数据后,我想删除author\u name列中所有值为空的行。以下是我到目前为止所写的内容: CREATE TRIGGER trigger1 AFTER INSERT ON BOOKS FOR EACH ROW BEGIN DELETE FROM BOOKS WHERE author_name = '' END; 这是不起
author\u name
列中所有值为空的行。以下是我到目前为止所写的内容:
CREATE TRIGGER trigger1
AFTER INSERT
ON BOOKS
FOR EACH ROW
BEGIN
DELETE FROM BOOKS WHERE author_name = ''
END;
这是不起作用的:(问题是,在一个没有用
;
分隔的语句周围有BEGIN…END
。但是,如果你把缺少的;
放进去,你需要为整个定义引入一个元分隔符,因为如果你不这样做,内部的;
将破坏它
因此,在DELETE
语句的末尾放一个;
,并在触发器定义之前引入一个分隔符:
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 = '';
此触发器是否按预期触发?否..它显示了一些语法错误..是否甚至可以在插入后删除插入前而不是插入后删除插入前我将无法访问数据,是否有其他解决方法?