mysql触发器(trigger)
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,触发器的作用监听数据的变化,以实现当数据变化时的关联操作,不过感觉没有实际作用,触发器的功能如果用代码逻辑来控制感觉会更正规些,毕竟团队中的其它人不一定会看到你定义的触发器,但一定能看到你的代码。那为
千家信息网最后更新 2025年01月25日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
win10登陆服务器
服务器里的驱动如何给本地电脑装
linux登陆服务器命令
网络安全理论与应用俞研
dw8怎么连接数据库
网络安全小卫士a3纸绘画
黑龙江网络技术开发参考价
网络安全要注意的事
保定学网络技术在哪
超市数据库安全要求
龙口天气预报软件开发
公安网络安全保密八条纪律
观看网络安全宣传片心得体会
外部访问阿里云数据库
网络安全与执法是什么门类
搭建本地虚拟服务器
数据库 优化
北京系统软件开发团队
电信网络安全证书
网络安全员咋样
游戏开发服务器交互失败
湖南微云控软件开发有限公司
开州区网络安全周金融日
d传奇数据库expand1
南通游戏软件开发人才招聘