我是SQL的新手,所以我请求你的帮助。在我的数据库中,我有一个名为" table"一些字段为" name"," lat"," lng"," error"。现在我想检查每个更新事件该表的错误字段并删除具有错误值>的行。 3.我认为Trigger可用于此角色,我编写了以下代码:
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时没有任何反应。 我很抱歉我的英语和代码中的错误。感谢eveybody。
UPDATE @RiggsFolly,你说用这种方式修改代码吗?我接受了一个sintax错误。
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我知道这个,名字"表"仅作为示例,在DB中,表具有不同的名称,谢谢。 我插错了标签,对不起。
答案 0 :(得分:0)
您不能在与触发器相同的表上执行delete语句。 以下是一个很好的解释:https://stackoverflow.com/a/27094683/4505007