一、什么是触发器?
1.概念:
简单来说触发器就是一种特殊的存储过程,在数据库服务器触发事件的时候会自动执行其SQL语句集。
2.构成四要素:
(1)名称:要符合标识符命名规则
(2)定义的目标:必须要定义在表上或者视图上
(3)触发逻辑:触发事件之后如何处理
(4)触发事件类型:
3.种类:
触发器类型 | 描述 |
---|---|
Before触发器 | 在触发事件发生之前执行的触发器 |
After触发器 | 在触发事件发生之后执行的触发器 |
4.与存储过程的区别:
两者最明显的区别就是调用执行方式的不同。
触发器 | 主要是通过事件进行触发而被执行的,具有极强的及时性,代码量也不大,无需人工手动干预去执行。
| |
存储过程 | 可以通过存储过程名字结合CALL语句而被直接调用。 |
二、触发器的作用是什么?
简单一句话来说就是用于强制执行业务规则和数据完整性.
(1)强化约束:能够实现比约束更为复杂的业务规则约束;
(2)跟踪变化:侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化,以防止恶意的或者不正确的插入、更新和删除操作;
(3)级联运行:可以侦测数据库内的操作,自动地级联影响整个数据库的相关内容;
(4)差异记录:触发器能够找出某一表在数据修改前后状态发生的差异。并且还可以根据差异执行相应的处理
三、MySQL语句创建、查看(验证)、删除触发器
1.创建触发器
MySQL创建触发器语句的语法如下:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tb_name FOR EACH ROW trigger_stmt
2.查看验证触发器
MySQL查看所有触发器情况语句的语法如下:
SHOW TRIGGERS;
SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME=trigger_name;
其中,trigger_name表示要查看的触发器的名称。
3.删除触发器
MySQL删除触发器语句的语法如下:
DROP TRIGGER 触发器名