语法:
一、创建触发器:
create trigger 触发器名字
before/after insert/update/delete
on 表名 for each row --行级触发器,每行有变化都会被触发
begin
trigger_stmt;
end;
说明:
before/after:指定是在之前还是之后触发
insert/update/delete:指定当表发生什么类型(insert/update/delete)的操作时会触发
二、查看触发器
show triggers;
三、删除触发器
drop trigger [schema_name.]trigger_name; --如果没有指定schema_name,默认为当前数据库。
实践:
通过触发器记录tb_user表的数据变更日志,将变更的日志插入到日志表user_logs中,包含增加、修改、删除
1、准备一张user_logs表存储user表的数据变更日志:
2、创建user表insert时的触发器,注意new指即将插入的或是已经新增的的数据:
3、创建user表update时的触发器,注意old指的是upadte前的数据,new是指update后的数据:
4、创建user表delete时的触发器,注意old是要删除的或已经删除的那个数据