触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力
#触发器作用:
1.安全性
2.审计
3.实现复杂的非标准的数据库相关完整性规则。
4.实现复杂的数据完整性规则
5.实时同步地复制表中的数据
6.自动计算数据值
#触发器语法:
语法:
create trigger 触发器名称 触发的时机 触发的动作 on 表名 for each row 触发器状态。
参数说明:
触发器名称: 自己定义
触发的时机: before /after 在执行动作之前还是之后
触发的动作 :指的激发触发程序的语句类型
each row:操作第一行我都监控着
触发器创建语法四要素:
1.监视地点(table)
2.监视事件(insert/update/delete)
3.触发时间(after/before)
4.触发事件(insert/update/delete)
例子:
create table tb(id int,name vachar(10))
insert into tb(id,name)values(1,"aa")//
insert into tb(id,name)values(2,"aa")//
create trigger funn after insert on tb for each row set NEW.id=3
#注意,触发器不能对同一个张表使用
1. 非常遗憾,MYSQL中触发器中不能对本表进行 insert ,update ,delete操作,以免递归循环触发
2. 对于update 只能用set进行操作,insert与delete只能借助第二张表才能实现需要的目的
#查看和删除触发器
show create trigger fun \G #查看单个触发器
show create triggers \G #查看所有的触发器
drop trigger fun #删除触发器