【发布时间】:2017-11-02 21:36:52
【问题描述】:
我正在 mySQL 5.6 中编写触发器,在更新表 A 中的某些字段后,我会将表 A 的更改写入注释表,但是我在第 2 行遇到错误,我很确定它是有点傻:
SET @createNote = 0;
SET @message = 'UPDATED';
IF (NEW.customerEmail != OLD.customerEmail) THEN
SET @message = CONCAT(@message, '\r\n', OLD.customerEmail, ' -> ', NEW.customerEmail);
SET @createNote = 1;
END IF;
IF (@createNote) THEN
INSERT INTO claim_notes SET claimId = NEW.id, message = @message, createdBy = NEW.lastModifiedBy, type = 'system', createdByEmail = NEW.lastModifiedByEmail;
END IF;
我正在使用 Sequel Pro 的触发 UI,所以我的示例中没有正常的分隔符。
错误信息:
MySQL 说:你的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在 'SET \@message = 'UPDATED' 附近使用;如果(新客户电子邮件!= OLD.customerEmail) THEN SET' 在第 2 行
【问题讨论】:
-
确切的错误信息是什么?
-
@aendeerei MySQL 说:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'SET \@message = 'UPDATED'; 附近使用正确的语法; IF (NEW.customerEmail != OLD.customerEmail) THEN SET' 在第 2 行