Php 更新历史记录表时Mysql触发器不工作

Php 更新历史记录表时Mysql触发器不工作,php,mysql,triggers,Php,Mysql,Triggers,我想使用下面的触发器更新历史记录表 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; EN

我想使用下面的触发器更新历史记录表

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$$

这里有什么问题?

这些行中的问题:

UPDATE transaction_history SET OLD.deliverystatus = NEW.deliverystatus
WHERE OLD.alertID=NEW.alertID;
来自MySQL文档的
在更新触发器中,您可以使用OLD.col_name来引用更新前的行的列,使用NEW.col_name来引用更新后的行的列

名为with OLD的列是只读的。您可以引用它(如果您有选择权限),但不能修改它

有关详细信息,请参阅


我也想从社区中了解这一点。

删除触发器定义中的
旧别名。新旧别名指的是subject(受原始查询影响的别名)表


updatetransaction\u历史记录集deliverystatus=NEW.deliverystatus,其中alertID=NEW.alertID

您是否无法创建此触发器,或者您已创建但未更新?我无法更新表,触发器已创建。我认为您已以粗体显示“历史”,但您希望更新事务历史表。希望这不是问题所在。对吧?不,不,这不是问题