MYSQL触发器更新复制整行

Jef*_*ffD 5 mysql triggers

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

我有2张桌子

FrequenciesFrequencies_Audit

这是我的触发器.

create trigger auditlog 
before update on frequencies
for each row insert into
frequencies_audit select frequencies.*;
Run Code Online (Sandbox Code Playgroud)

当我更新记录时,我得到了未知表frequencies.

我不希望必须单独输入每个字段名称,因为我们不断在数据库中添加列.

hem*_*emu 14

而不是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 ;
Run Code Online (Sandbox Code Playgroud)

freqId只是Id列的名称.将其替换为频率表中Id列的名称.