一、触发器
触发器是与表有关的数据库对象,指在insert/update/delete 之前或之后,触发器并执行触发器中定义的SQL语句集合。
触发器的这种特性可以协助应该用在数据库确保数据的完整性,日志记录,数据校验等操作。
使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。
现在触发器还只支持行级触发,不支持语句触发。
创建触发器语法:
delimiter $
create trigger 触发器名称
before/after insert/update/delete
on 表名
[ for each row] – 行级触发器
begin
触发器逻辑
end$
delimiter ;
创建触发器
新增
delimiter $
create trigger student_insert_trigger
after insert
on student
for each row
begin
insert into log values (null,'insert',now(),new.id,concat('(插入的参数是:id:',new.id,',name:',new.name));
end $
delimiter ;
修改
delimiter $
create trigger student_update_trigger
after update
on student
for each row
begin
insert into log values (null,'update',now(),old.id,concat('修改前的name:',old.name,',修改后的name:',new.name));
end $
delimiter ;
删除
delimiter $
create trigger student_delete_trigger
after delete
on student
for each row
begin
insert into log values (null,'delete',now(),old.id,concat('删除前的id:',old.id));
end $
delimiter ;
删除触发器
drop trigger 触发器名称;
查看触发器
show triggers;