我正在尝试创建一个触发器,以将整个行复制到任何UPDATE上的审核表中。

我有2张 table
FrequenciesFrequencies_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/

10-09 17:07