我有这个问题。当用户对表person_tbl
中的单行进行更新且列pers_name
和pers_surname
为空时,触发器必须删除此记录。
此触发器不起作用。为什么呢?
CREATE TRIGGER `trg_person_delete` AFTER UPDATE ON `person_tbl ` FOR EACH ROW BEGIN
DELETE FROM person_tbl
WHERE pers_name IS NULL
AND pers_surname IS NULL;
END
答案 0 :(得分:0)
触发器无法修改导致调用它的表。
存储的函数或触发器不能通过调用函数或触发器的语句修改已经使用(用于读取或写入)的表。
但您可以选择在UPDATE
之前添加一项检查,以确保pers_name
和pers_surname
列不是NULL
。
如果您不想为这两列提供NULL
值,请考虑通过以下方式使其不可为空:
ALTER TABLE person_tbl MODIFY pers_name VARCHAR(100) NOT NULL;