介绍
触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,执行触发器中定义的SQL语句集合。
使用别名OLD和NEW来引用触发器中发生变化的记录内容。现在触发器还只支持行级触发,不吃吃语句级出发。
语法
#创建
create trigger trigger_name
before/after insert/update/delete
on table_name for each row
begin
trigger_stmt;
end;
#查看
show triggers;
#删除,如果没有指定schema_name,默认为当前数据库
drop trigger [schema_name.]trigger_name;
示例
create trigger user_insert_trigger
after insert on user for each row
begin
insert into user_logs(id, operation, operate_time, operate_id) values
(null, 'insert', now(), new.id)
end;
create trigger user_update_trigger
after update on user for each row
begin
insert into user_logs(id, operation, operate_time, operate_id,old_params) values
(null, 'update', now(), new.id, old.id)
end;
create trigger user_delete_trigger
after delete on user for each row
begin
insert into user_logs(id, operation, operate_time, operate_id) values
(null, 'delete', now(), old.id)
end;