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

时间:2015-03-05 18:30:15

标签: mysql triggers insert edit

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

简单来说,我的表看起来像这样:

主要表格

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

审核表

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

如果我想在主表中编辑lead_id = '4'条目,我怎样才能在触发器中获取该ID,以便将修改后的条目保存到lead_id = '4'的审计表中?

1 个答案:

答案 0 :(得分:2)

对于插入内容,您可以将数据记录为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_id自动递增,日期字段具有datetime数据类型。