mysql触发器(trigger)
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,触发器的作用监听数据的变化,以实现当数据变化时的关联操作,不过感觉没有实际作用,触发器的功能如果用代码逻辑来控制感觉会更正规些,毕竟团队中的其它人不一定会看到你定义的触发器,但一定能看到你的代码。那为
千家信息网最后更新 2024年11月19日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安全错误
数据库的锁怎样保障安全
智能语音服务器订做费用
请求被源服务器防火墙中断
网络安全官网图
软件开发服务交什么税
激光雕刻机软件开发
服务器管理器win10
怎样下载台湾服务器云主机
服务器 芯片 内存 硬盘
一个软件开发价格大概多少
国庆网络安全规模
c语音用什么软件开发
公司服务器文件不能复制
学习电脑网络技术的网站
阿里kvm服务器架构
如何通过页面连接数据库
嵌入式软件开发应该注意什么
网络安全知识比赛现场
ppt网络安全教育图片
阿波罗软件开发
netty 服务器客户端管理
网络安全知识搜题
软件开发项目质量服务承诺书
t3核算模块数据库结账
盐城市科易网络技术有限公司
app服务器承载能力
市大数据库结构课程设计
java 缓存与数据库
联通网打电信服务器
质谱公共数据库
上海耘恪互联网科技有限公司