我是 SQL 新手,所以我请求你的帮助。在我的数据库中,我有一个名为“table”的表,其中一些字段为“name”、“lat”、“lng”、“error”。现在我想检查每个更新事件的错误字段,并删除错误值> 3的行。我认为触发器可以用于此角色,我编写了以下代码:
DELIMITER $$
DROP TRIGGER IF EXISTS `trigger_update`;
DELIMITER //
CREATE TRIGGER `trigger_update` AFTER UPDATE ON `table`
FOR EACH ROW BEGIN
DELETE FROM `table` WHERE error > 3;
END
//
DELIMITER ;
但是当我更新表并且行的错误字段高于 3 时没有任何反应。 我对我的英语和代码错误感到抱歉。谢谢大家。
更新 @RiggsFolly,你说以这种方式修改代码?我犯了一个语法错误。
DELIMITER $$
DROP TRIGGER IF EXISTS `trigger_update`;
CREATE TRIGGER `trigger_update` AFTER UPDATE ON `table`
FOR EACH ROW BEGIN
DELETE FROM `table` WHERE error > 3;
END;$$
DELIMITER ;
@Jmons我知道这一点,名称“表”仅作为示例,在数据库中表有不同的名称,谢谢。 我插入了错误的标签,抱歉。
最佳答案
您不能在与触发器相同的表上执行删除语句。 这里有一个很好的解释:https://stackoverflow.com/a/27094683/4505007
关于mysql - 如何创建触发器(Mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40281955/