< 返回文章列表
【服务器相关】MySQL自定义函数及触发器
发表时间:2025-06-16 03:46:00 小编:主机乐-Yutio
1. 存储函数(自定义函数)
- 自定义函数是一种对MySQL扩展的途径,其用法与内置的函数相同。
- 定义函数的两个必要条件:参数、返回值。函数可以返回任意类型的值,同样可以接收这些类型的参数。
关于函数体:
- 函数体是由合法的SQL语句构成。
- 函数体可以是简单的SELECT或INSERT语句。
- 函数体如果为符合结构则使用BEGIN….AND语句包裹。
- 复合结构可以包含声明、循环、控制结构等等。
重点:自定义的函数不能重名,类似于定义了一个全局变量,变量名不能一致。
1.1 定义存储函数
语法格式:

2.2 创建触发器
语法格式:

- 使用 new 关键字可以获取到操作的数据,在insert模式下,new变量中存储的就是即将插入的数据
- 使用的是 after ,在执行完表 emp 的新增之后执行这个触发器记录日志。
- 这个触发器什么时候执行与两点有关:
- 必须操作的是 emp 这个表,也就是on后面声明的这个表。
- 必须执行的 insert 操作。
创建执行 update 的触发器:

此时 old 变量中存储的是被修改前的数据,new 变量中存储的是修改之后的数据
创建执行 delete 的触发器:

此时的 old 变量中存储的即将删除的数据
测试:测试都必须是操作的 emp 表,这样才会触发上边定义的触发器。

2.3 删除触发器
语法结构:
drop trigger [schema_name.](数据库名)trigger_name(触发器名);
如果没有指定 schema_name(数据库名),默认为当前数据库。
2.4 查看触发器
可以通过执行 show triggers 命令查看触发器的状态、语法等信息。
语法结构:
show triggers;
到此这篇关于MySQL自定义函数以及触发器的文章就介绍到这了,更多相关MySQL 触发器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!