我想使用以下触发器
更新历史记录表CREATE
TRIGGER `trig_Update_transaction` AFTER UPDATE ON `transaction`
FOR EACH ROW BEGIN
UPDATE transaction_history SET OLD.deliverystatus=NEW.deliverystatus
WHERE OLD.alertID=NEW.alertID;
END$$
这里有什么问题?
答案 0 :(得分:0)
这些问题:
UPDATE transaction_history SET OLD.deliverystatus = NEW.deliverystatus
WHERE OLD.alertID=NEW.alertID;
来自MySQL文档:
在UPDATE触发器中,您可以使用OLD.col_name在更新行之前引用行的列,使用NEW.col_name在更新行之后引用该行的列。
以OLD命名的列是只读的。您可以引用它(如果您具有SELECT权限),但不能修改它。
有关详细信息,请参阅this
我也很想从社区中读到这个。
答案 1 :(得分:0)
删除触发器定义中的OLD
别名。 OLD和NEW别名是指主题(一个受原始查询影响)表。
UPDATE transaction_history SET deliverystatus=NEW.deliverystatus WHERE alertID=NEW.alertID;