我第一次在mysql中使用触发器。我对AFTER UPDATE没有任何问题,它只将一条记录写入我的审计文件。 但是当我执行AFTER INSERT时,它会将原始表中的所有记录的副本写入审计表。我只将它的一个更改记录写入审计文件。我想这是因为'对于每一行',但我找到的所有示例都包含此命令。我错过了什么?
CREATE TRIGGER insertafter AFTER INSERT ON `delete4try`
FOR EACH ROW INSERT INTO delete4try_audit
SELECT h . * , NULL , NOW( ) FROM delete4try h
答案 0 :(得分:0)
因为你选择没有WHERE子句, 你可能想要使用NEW.col1,NEW.col2作为例子并取出FROM delete4try
CREATE TRIGGER insertafter AFTER INSERT ON `delete4try`
FOR EACH ROW INSERT INTO delete4try_audit
SELECT NEW.col1,NEW.col2,NULL,NOW()
col1和col2只是样品,用实际的列名替换它们。