【问题标题】:Why does my trigger doesn't work ? Error 1064为什么我的触发器不起作用?错误 1064
【发布时间】:2019-03-29 06:06:15
【问题描述】:

我在 MySql Workbench 中有一个语法错误,但我似乎找不到它... 我的触发器正确吗?

CREATE TRIGGER after_delete_user AFTER UPDATE
ON users FOR EACH ROW
BEGIN
    IF NEW.deletionDate != NULL
        THEN
            DELETE FROM requests WHERE user_id = OLD.user_id;
            DELETE FROM appointments WHERE user_id = OLD.user_id;
    END IF;
END;

谢谢!

【问题讨论】:

  • 你能提供完整的错误吗?

标签: mysql triggers mysql-workbench


【解决方案1】:

需要将 Delimiter 定义为 ; 以外的其他内容。最后将其重新定义回;。要比较null 的值,我们需要使用IS NOT NULL

DELIMITER $$

CREATE TRIGGER after_delete_user AFTER UPDATE
ON users FOR EACH ROW
BEGIN
    IF NEW.deletionDate IS NOT NULL
        THEN
            DELETE FROM requests WHERE user_id = OLD.user_id;
            DELETE FROM appointments WHERE user_id = OLD.user_id;
    END IF;
END$$ 

DELIMITER ;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    相关资源
    最近更新 更多