【发布时间】:2019-01-13 04:49:21
【问题描述】:
无法在更新特定字段时创建触发器
delimiter //
CREATE TRIGGER `add_event` AFTER UPDATE ON `order_table`
FOR EACH ROW
IF NEW.status <=> OLD.status THEN
INSERT INTO `events` SET
events.status = NEW.status,
events.order_id = NEW.order_id,
events.time_stamp = CURRENT_TIMESTAMP
END IF;
delimiter ;
我收到了这个错误
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用 靠近'END IF;
【问题讨论】:
-
你不应该在
UPDATE之后有, INSERT -
没有和 AFTER UPDATE, INSERT 触发器之类的东西 - 你需要一个。
-
现在我认为您需要在
CURRENT_TIMESTAMP之后使用;才能正确终止您的声明。 -
在
FOR EACH ROW之后你需要一个begin关键字并且在end if;你之后你需要一个end;// -
SET 语句在 AFTER 触发器中无效,因为行更改已经发生