mysql触发器(trigger)
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,触发器的作用监听数据的变化,以实现当数据变化时的关联操作,不过感觉没有实际作用,触发器的功能如果用代码逻辑来控制感觉会更正规些,毕竟团队中的其它人不一定会看到你定义的触发器,但一定能看到你的代码。那为
千家信息网最后更新 2025年11月06日mysql触发器(trigger)
触发器的作用
监听数据的变化,以实现当数据变化时的关联操作,不过感觉没有实际作用,触发器的功能如果用代码逻辑来控制感觉会更正规些,毕竟团队中的其它人不一定会看到你定义的触发器,但一定能看到你的代码。那为何还要学习触发器,有些知识不是为自己学的,你不用,你不敢保证别人不用。如果别人用了,我们对此一无所知,那么会给程序的维护带来很大的困难。
触发器的定义
格式:create trigger 触发器名称 事件 on 表名 执行代码
事件:
- 插入 insert
- 删除 delete
- 修改 update
时机:
- 前 before
- 后 after
事件与时机组合共有六种情况
- before insert
- after insert
- before delete
- after delete
- before update
- after update
创建语法
delimeter $ // 修改语句结束符,避免和定义trigger中的语句冲突
create trigger triggerName
after/before insert/update/delete on 表名
for each row // 这一行是固定的
begin
sql语句 // 一条或多条sql语句,一条sql语句也可省略begin 和 end
end;
delimeter ; // 改回正常的结束符
new / old
如果在trigger内部需要使用触发trigger那行记录中的值,那么new代表新行,old代表旧行。也就是说 old / new 分别代表事件发生 前 / 后该行记录。是一整行,而不是某个字段。
*注意: insert 操作没有old,delete 操作没有new
触发器的管理
删除
drop trigger trigger_name
查看所有触发器
show triggers;
示例
假设我们有一张班级表
| id | class_name | num |
|---|---|---|
| 1 | 001 | 1 |
| 2 | 002 | 1 |
| 3 | 003 | 0 |
还有一张学生表
| id | name | class_id |
|---|---|---|
| 1 | xiaohong | 1 |
| 2 | xiaogang | 2 |
我们定义一个触发器,每当增加一名学生,对应班级表中的学生数量num就加一。
delimiter $$create trigger zhaosheng after insert on student for each rowbeginupdate class set num=num+1 where id=new.class_id;end;$$delimiter ;看效果:
当增加一个学生zhangsan后,calss表中对应的id为3的num自动增加1。
触发器
语句
事件
学生
代码
代表
不用
作用
感觉
数据
时机
班级
结束符
变化
很大
困难
一无所知
一无
一行
也就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
博雅数据库预估湖南文科
顺义区进口软件开发报价
服务器安全狗和护卫神
廊坊市网联网络技术
服务器上设置ftp
网络安全面临挑战
dota2不可侵犯数据库
钦州市app软件开发代理
无基础能学软件开发
房联网络技术有限公司招聘
初中生与网络安全
库乐队连接什么服务器
网络安全识人
苏州理薪网络技术有限公司
绿色下载软件开发
国泰基金招聘网络安全
境外云服务器租用
昌平安全接入服务器地址
工业扫描软件开发
厦门法硕互联网科技有限公司
小学生网络安全题库
联邦网络安全公司
北京卫视首都网络安全日视频
中央网络安全小组组长视频
华为认证网络安全题库
cdma软件开发公司
徐闻im即时通讯软件开发
最大服务器内存
服务器密码统一管理
dba数据库推荐