【发布时间】:2011-09-29 10:06:14
【问题描述】:
我读过这个article,但它似乎不适用于删除。尝试创建触发器时出现此错误:
在服务器中执行 SQL 脚本
错误:错误 1363:DELETE 触发器中没有新行
CREATE TRIGGER DeviceCatalog_PreventDeletion
BEFORE DELETE on DeviceCatalog
FOR EACH ROW
BEGIN
DECLARE dummy INT;
IF old.id = 1 or old.id =2 THEN
SELECT * FROM DeviceCatalog WHERE DeviceCatalog.id=NEW.id;
END IF;
END;
SQL 脚本执行完成:语句:4 条成功,1 条失败
【问题讨论】:
-
NEW.fieldname 在插入或更新记录时存在;当您删除时,数据库中没有任何新内容!!!错误很明显:您不能使用 NEW.id,因为 DELETE 触发器中不允许使用 NEW
-
根据链接的文章,select 语句应该失败 - 您的 select 语句读起来像真实的,而不像文章中打算失败的
select into dummy。
标签: mysql triggers sql-delete