项目场景:
工作出现这个场景,当日志表大小超过阀值后清理6个月以前的数据,并备份到日志备份表,处理方案通过触发器实现,在删除的时候同时去备份,记录一下
问题描述:
一般where后面跟的字段是唯一标识字段(主码),如果用可重复字段会发生在删除一条记录的时候就在备份表中插入多条记录的问题!old表示一种状态,删除动作执行之前的表称OLD表,删除动作执行之后的表称NEW表。
触发器名字:log_delete_trigger 删除数据的表 :sys_log 备份的表:sys_log_copy
CREATE TRIGGER log_delete_trigger BEFORE DELETE ON sys_log FOR EACH ROW
BEGIN
INSERT INTO sys_log_copy
SELECT * FROM atm_detail where id=old.id;
END