mysql - 如何创建触发器(Mysql)

标签 mysql triggers

我是 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/

相关文章:

php - Current_timestamp -> PHP 日期()

triggers - jQuery .trigger ('click' )在间隔函数内?

sql - INSERT 是否可以在触发器 "inserted"表中产生多行结果?

C# 计时器 Azure SQL 函数

mysql - sql timestamp 错误的结果 - 现在

mysql - 使用 2 个其他别名的数学结果创建别名

php - 每分钟运行的 Laravel cron 作业使 mysql 连接数翻倍

database - 有没有办法在一个脚本中创建多个触发器?

sql - 在 SQL Server 中创建触发器

python - pandas to_sql 截断了我的数据