1.什么是触发器
响应某个预定事件执行的任务,当做 添加 删除 修改 之前活之后会出发的事件
2.触发器的分类
什么之前:before 前触发器
什么之后:after 后触发器
3.触发器支持那些操作
增(insert) 删(delete) 改(update)
不支持查询
4.New: 新表 存储新数据 insert (即将插入进去的数据) update (即将修改的新数据)
Old : 旧表 存储旧数据 delete (即将要删除的旧数据) update (即将被修改的数据就是旧数据)
只能出现在触发器中,new和old 虚拟的,列名由被操作的表
- 掌握触发器的创建
Create trigger 触发器名
Before/after insert/update/delete on表名
For each row
Begin
操作
End;
删除触发器
Drop trigger if exists 名字;
显示所有触发器:show triggers
触发器命名规范:
ad_xx : 删除之后 after_delete
ai_xx :插入之后 after_insert
au_xx : 修改之后 after_update
bd_xx : 删除之前 before_delete
bi_xx : 插入之前 before_insert
bu_xx : 修改之前 before_update
after : 执行之后,先执行外面代码,在执行触发器里面
before :执行之前, 先执行触发器里面,在执行外面的代码 可以为 字段修改值 set new.字段=值 或 set old.字段=值
使用触发器的规则:
一张表只能建立一种类型触发器
不支持存储过程 不支持视图、
不能返回结果集 可以使用select 进行查询 set 变量名=(查询语句)
不支持事务