【发布时间】:2021-07-17 03:42:39
【问题描述】:
我正在编写一个查询,该查询创建一个触发器,以使用名为“IsDelete”的标志软删除表 customer 中的一行,当标志为“0”时,它不会被删除,而当标志变为 1 时,该行具有已被标记为已删除。
运行查询时会生成错误代码 1442c。谁能解释一下为什么?
DELIMITER $$
CREATE TRIGGER SOFT_DELETE_TRIGGER
BEFORE DELETE ON customer
FOR EACH ROW
BEGIN
IF OLD.IsDelete = 0 THEN
CALL cannot_delete_error;
UPDATE customer
SET IsDelete = 1;
END IF;
END
$$
删除表中的一行以测试触发器。
DELETE FROM customer
WHERE C_username = 'testuser'
【问题讨论】:
标签: mysql triggers insert mysql-workbench sql-delete