MySQL 触发器 : IF ELSE error

标签 mysql sql triggers

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

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 服务器版本相对应的手册,了解使用 near '= NULL; 的正确语法。 别的 电子邮件 = OLD.email; 万一; UPDATE corporate_audit SET ' 在第 5 行

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

最佳答案

你缺少SET

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

关于MySQL 触发器 : IF ELSE error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13935426/

相关文章:

php - 获取查询中带有限制的所有行

php - Yii 加入不在标准中

php - 将 ô 插入 mysql 数据库是 Rhône 结果的一部分

python - django//原始查询必须包含主键

sql - Postgres : filter out some results with join

c# - ?? sql中的运算符

sql - 获取 SQL Server 中触发器的调用者

SQL 列出具有实际所有者的所有公寓

postgresql - 使用 dblink 复制新数据的函数中出现语法错误

mysql - 在更新数据库上创建 mysql 触发器