# 触发器

# 作用

触发器是一种特殊的存储过程,主要是通过「事件」来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。触发器不能由用户显示调用,而是只有当出发时间发生并且被捕捉到后,才会被触发。

# 语句

// 创建触发器
create trigger trigger_name
trigger_time
trigger_event on tbl_name
for each row
trigger_stmt
  • trigger_name:标识触发器名称,由用户自定义
  • trigger_time:标识触发器的时机,取值可以是beforeafter
  • tbl_name:标识建立触发器的表名,即在哪张表上建立触发器
  • trigger_stmt:触发器的程序体,可以是一句SQL语句或者用beginend包含的多条SQL语句,即触发后会执行的操作

可以建立6种触发器:before insertbefore updatebefore deleteafter insertafter updateafter delete

// 查看触发器
select * from information_schema.`triggers`;
// 或者([]代表可省略)
show triggers [from schema_name];

// 删除触发器
drop trigger trigger_name;

schema_name在这里指数据库名称,trigger_name是触发器名称。