我正在尝试创建一个触发器,以将整个行复制到任何UPDATE上的审核表中。
我有2张 table Frequencies
和Frequencies_Audit
这是我的触发器。
create trigger auditlog
before update on frequencies
for each row insert into
frequencies_audit select frequencies.*;
当我更新记录时,我得到Unknown Table
frequencies
。我不想在可能的情况下单独输入每个字段名称,因为我们一直在数据库中不断添加列。
最佳答案
除了BEFORE UPDATE
,您还可以编写AFTER UPDATE
触发器,如下所示:::
DELIMITER //
CREATE TRIGGER auditlog AFTER UPDATE ON frequencies
FOR EACH ROW BEGIN
INSERT INTO frequencies_audit select * from frequencies where freqId = NEW.freqId;
END;//
DELIMITER ;
freqId只是ID列的名称。将其替换为频率表中Id列的名称。
关于MYSQL触发器更新复制整个行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11642456/