【问题标题】:MySQL Trigger: IF ELSE errorMySQL 触发器:IF ELSE 错误
【发布时间】:2012-12-18 14:48:05
【问题描述】:

尝试执行第一个触发器,该触发器仅在数据是新数据时才应将一个表的值插入另一个表。以下是我的代码:

BEGIN
    DECLARE email VARCHAR(30);
   INSERT INTO data_audit SET data_audit_id = OLD.id;
   IF (NEW.email = OLD.email) THEN
    email = NULL;
   ELSE
    email = OLD.email;
   END IF;
   UPDATE corporate_audit SET email = email WHERE corporate_audit_id = last_insert_id();
END

我收到以下错误:

您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '= NULL; 附近使用的正确语法; 别的 电子邮件 = OLD.email; 万一; 在第 5 行更新corporate_audit SET '

当我执行没有任何 IF-THEN 块的代码并存储 OLD.email 时,它只会在审计表中插入新 ID,但不会更新字段。 请指导我

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:

    你不见了SET

       IF (NEW.email = OLD.email) THEN
          SET email = NULL;
       ELSE
          SET email = OLD.email;
       END IF;
    

    【讨论】:

    • 太棒了。多谢兄弟。我真的很爱我的 Stackoverflow 家庭,他们总是乐于提供无私的帮助。
    • 对不起,又打扰你了。由于我使用的是 AFTER UPDATE 触发器,它不允许我更新正在触发的表的列值。
    • 如果我有三个条件,我该怎么办?我需要elseif,mysql中有elseif(触发器)?
    猜你喜欢
    • 2015-06-02
    • 1970-01-01
    • 2021-10-23
    • 2019-11-18
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2020-12-29
    • 2019-06-12
    相关资源
    最近更新 更多