# 触发器
# 作用
触发器是一种特殊的存储过程,主要是通过「事件」来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。触发器不能由用户显示调用,而是只有当出发时间发生并且被捕捉到后,才会被触发。
# 语句
// 创建触发器
create trigger trigger_name
trigger_time
trigger_event on tbl_name
for each row
trigger_stmt
trigger_name
:标识触发器名称,由用户自定义trigger_time
:标识触发器的时机,取值可以是before
和after
tbl_name
:标识建立触发器的表名,即在哪张表上建立触发器trigger_stmt
:触发器的程序体,可以是一句SQL语句或者用begin
和end
包含的多条SQL语句,即触发后会执行的操作
可以建立6种触发器:before insert
、before update
、before delete
、after insert
、after update
、after delete
。
// 查看触发器
select * from information_schema.`triggers`;
// 或者([]代表可省略)
show triggers [from schema_name];
// 删除触发器
drop trigger trigger_name;
schema_name
在这里指数据库名称,trigger_name
是触发器名称。