gpt4 book ai didi

mysql - 如果更新后两个字段为空,则使用触发器删除记录

转载 作者:行者123 更新时间:2023-11-29 20:20:09 25 4
gpt4 key购买 nike

我有这个问题。当用户对表 person_tbl 中的单行进行更新且列 pers_namepers_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

最佳答案

触发器无法修改导致其被调用的表。

来自documentation :

A stored function or trigger cannot modify a table that is already being used (for reading or writing) by the statement that invoked the function or trigger.

但是您可以选择在 UPDATE 之前添加一个检查,以确保 pers_namepers_surname 列不是 NULL

如果您不想让这两列出现 NULL 值,请考虑通过以下方式使它们不可为空:

ALTER TABLE person_tbl MODIFY pers_name VARCHAR(100) NOT NULL;

关于mysql - 如果更新后两个字段为空,则使用触发器删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39545408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com