在插入或编辑后使用MySQL触发器克隆表中的条目

在插入或编辑后使用MySQL触发器克隆表中的条目,mysql,triggers,insert,edit,Mysql,Triggers,Insert,Edit,我知道可以使用MySQL触发器将一个条目从一个表克隆到另一个表中,我希望对插入和编辑操作都执行此操作。对于插入操作,我设法找到了一种方法,但似乎无法使其用于编辑 简单地说,我的桌子是这样的: 主表 +---------------------------------------------------+ | lead_id, title, owner_id, description, date_added | +------------------------------------------

我知道可以使用MySQL触发器将一个条目从一个表克隆到另一个表中,我希望对插入和编辑操作都执行此操作。对于插入操作,我设法找到了一种方法,但似乎无法使其用于编辑

简单地说,我的桌子是这样的:

主表

+---------------------------------------------------+
| lead_id, title, owner_id, description, date_added |
+---------------------------------------------------+
+----------------------------------------------------------------------------+
| audit_id, lead_id, title, owner_id, description, date_added, date_modified |
+----------------------------------------------------------------------------+
审计表

+---------------------------------------------------+
| lead_id, title, owner_id, description, date_added |
+---------------------------------------------------+
+----------------------------------------------------------------------------+
| audit_id, lead_id, title, owner_id, description, date_added, date_modified |
+----------------------------------------------------------------------------+

如果我想编辑主表中带有
lead\u id='4'
的条目,我如何在触发器中获取该id,以便将修改后的条目保存在带有
lead\u 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 ;

确保审核表
audit\u id
是自动递增的,并且日期字段具有
datetime
数据类型。

因此,是否要更新审核表中的记录或在更新主表时添加新项?我想在更新主表后添加新记录。