[英]MYSQL Trigger Update Copy Entire Row
I am trying to create a trigger to copy an entire row to an audit table on any UPDATE . 我正在尝试创建一个触发器,将整行复制到任何UPDATE上的审计表。
I have 2 tables 我有2张桌子
Frequencies
and Frequencies_Audit
Frequencies
和Frequencies_Audit
This is my trigger. 这是我的触发器。
create trigger auditlog
before update on frequencies
for each row insert into
frequencies_audit select frequencies.*;
When I update the record I get Unknown Table frequencies
. 当我更新记录时,我得到未知表
frequencies
。
I don't want to have to enter each field name separately if possible since we are constantly adding columns in the database. 我不希望必须单独输入每个字段名称,因为我们不断在数据库中添加列。
Rather than BEFORE UPDATE
, you can write AFTER UPDATE
trigger as follow :: 而不是
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 is just a name of Id column. freqId只是Id列的名称。 Replace it with the name of Id column in your frequencies table.
将其替换为频率表中Id列的名称。
You can try this 你可以试试这个
create trigger auditlog
AFTER UPDATE on frequencies
for each row insert into
frequencies_audit select * from frequencies;
Because in MYSQL if you wrote select TableName.*
then it always return an error Unknown table TableName
. 因为在MYSQL中如果你写了
select TableName.*
那么它总是会返回一个错误Unknown table TableName
。
May be it helps you. 可能对你有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.