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安全错误
数据库的锁怎样保障安全
数据库查询年月日
太原迎泽区网络安全协议
软件开发阶段的基本活动
厦门计算机网络安全学校在哪里
数字政府网络安全产业
万方数据医学数据库
维普数据库检索符号
知名的app软件开发公司
app足球队数据库
惠州社交软件开发商家
做c 软件开发的流程图
java如何连接数据库教程
数据库建立视图的几种方法
软件开发部门的岗位职责
宝山区优势软件开发试验设备
服务器没有防护被攻击
将学生信息存入数据库
cfd软件开发趋势
麦池交友软件开发商
联想服务器管理界面与系统
商丘市网络安全监督检查
海南社邻网络技术有限公司
订货软件开发
广州国宁互联网科技
基础软件开发的税率
网络技术要看的书
冻品互联网络科技
服务器 标签
数据库设计例题二维表
徐州大型软件开发价格实惠