我正在尝试创建一个触发器,以在任何 UPDATE 时将整行复制到审计表。
我有两张 table
Frequencies
和 Frequencies_Audit
这是我的触发器。
create trigger auditlog
before update on frequencies
for each row insert into
frequencies_audit select frequencies.*;
当我更新记录时,我得到 Unknown Table frequencies
。
如果可能的话,我不想分别输入每个字段名称,因为我们不断地在数据库中添加列。
最佳答案
您可以编写 AFTER UPDATE
触发器,而不是 BEFORE 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/