4

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

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;万一; UPDATE Corporate_audit SET ' 在第 5 行

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

4

1 回答 1

7

你不见了SET

   IF (NEW.email = OLD.email) THEN
      SET email = NULL;
   ELSE
      SET email = OLD.email;
   END IF;
于 2012-12-18T14:51:39.783 回答