在插入或编辑后使用 MySQL 触发器克隆 table 中的条目
Using MySQL triggers to clone entries in a table after insert or edit
我知道可以使用 MySQL 触发器将条目从一个 table 克隆到另一个 table,我想对插入和编辑操作进行此操作。对于插入操作,我设法找到了一种方法,但我似乎无法使其用于编辑。
简单来说,我的 table 看起来像这样:
主要table
+---------------------------------------------------+
| lead_id, title, owner_id, description, date_added |
+---------------------------------------------------+
审计table
+----------------------------------------------------------------------------+
| audit_id, lead_id, title, owner_id, description, date_added, date_modified |
+----------------------------------------------------------------------------+
如果假设我想从主 table 编辑带有 lead_id = '4'
的条目,我如何才能在触发器中获取该 ID 以便在审计中保存修改后的条目 table 和 lead_id = '4'
?
对于插入,您可以将数据记录到 audit
作为
delimiter //
create trigger audit_insert after insert on main_table
for each row
begin
insert into audit_table(lead_id,title,owner_id,description,date_added)
values
(new.lead_id,new.title,new.owner_id,new.description,now());
end ; //
delimiter ;
对于更新你可以有以下触发器
delimiter //
create trigger audit_update after update on main_table
for each row
begin
insert into audit_table(lead_id,title,owner_id,description,date_added,date_modified)
values
(new.lead_id,new.title,new.owner_id,new.description,old.date_added,now());
end ; //
delimiter ;
确保审计 table audit_id
自动递增并且日期字段具有 datetime
数据类型。
我知道可以使用 MySQL 触发器将条目从一个 table 克隆到另一个 table,我想对插入和编辑操作进行此操作。对于插入操作,我设法找到了一种方法,但我似乎无法使其用于编辑。
简单来说,我的 table 看起来像这样:
主要table
+---------------------------------------------------+
| lead_id, title, owner_id, description, date_added |
+---------------------------------------------------+
审计table
+----------------------------------------------------------------------------+
| audit_id, lead_id, title, owner_id, description, date_added, date_modified |
+----------------------------------------------------------------------------+
如果假设我想从主 table 编辑带有 lead_id = '4'
的条目,我如何才能在触发器中获取该 ID 以便在审计中保存修改后的条目 table 和 lead_id = '4'
?
对于插入,您可以将数据记录到 audit
作为
delimiter //
create trigger audit_insert after insert on main_table
for each row
begin
insert into audit_table(lead_id,title,owner_id,description,date_added)
values
(new.lead_id,new.title,new.owner_id,new.description,now());
end ; //
delimiter ;
对于更新你可以有以下触发器
delimiter //
create trigger audit_update after update on main_table
for each row
begin
insert into audit_table(lead_id,title,owner_id,description,date_added,date_modified)
values
(new.lead_id,new.title,new.owner_id,new.description,old.date_added,now());
end ; //
delimiter ;
确保审计 table audit_id
自动递增并且日期字段具有 datetime
数据类型。