摘要:本文学习了如何使用DDL语句管理触发器。
环境
Windows 10 企业版 LTSC 21H2
MySQL 5.7.40
1 简介
1.1 定义
触发器与存储过程和函数一样,都是由SQL语句和过程式语句组成的代码片段。
触发器需要由某个事件触发某个操作,这些事件包括增删改的DML操作。当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。
1.2 比较
与存储过程和函数相比,触发器有以下几个特点:
- 触发器不需要显示调用,当事件触发时会自动调用。
- 触发器没有返回值,其执行结果是直接对表中的数据进行修改或对触发事件进行处理。
- 触发器主要用于维护数据的一致性和完整性。
2 操作
2.1 创建
语法:
1 | create trigger 触发器名称 |
说明:
- 触发器名称:指定触发器的名称。
- 触发时间:before表示在事件之前触发,after表示在事件之后触发。
- 触发事件:insert表示插入记录时触发,update表示更新记录时触发,delete表示删除记录时触发。
- 表名:表示触发器监控的对象。
- 触发器主体:触发器的主体部分,可以是单条SQL语句,也可以是被
begin
和end
包裹的复合语句块。
示例:
1 | create trigger scoreBeforeInsert |
2.2 查看
查看所有触发器:
1 | show triggers; |
查看触发器的创建:
1 | show create trigger 触发器名称; |
2.3 修改
可以通过先删除触发器,然后重新创建触发器的方法实现修改的操作。
2.4 删除
语法:
1 | drop trigger 触发器名称; |
示例:
1 | mysql> drop trigger scoreBeforeInsert; |
条