MySql 触发器
⒈是什么?
触发器就是某个表发生一个事件(增删改操作),然后自动的执行预先编译好的SQL语句,执行相关操作。触发器事件跟触发器中的SQL语句是原子性的(要么同时执行,要么同时不执行),这样保证了数据的完整性。
⒉创建触发器
1.语法
drop trigger if exists databaseName.tri_Name; create trigger tri_Name -- tri_Name代表触发器名称 tirgger_time trigger_event on tableName -- tirgger_time为触发时机,可选值有after/before,trigger_event为触发事件,可选值有insert/update/delete for each row -- 这句话在mysql是固定的,表示任何一条记录上的操作满足触发事件都会触发该触发器。 begin sql语句; end
2示例
①insert类型触发器
1 drop trigger if exists study.tgr_users_insert; 2 create trigger tgr_users_insert 3 before insert on users 4 for each row 5 begin 6 set new.username='fanqi'; -- NEW用来表示将要(before)或已经(after)插入的新数据。 7 end;
②delete类型触发器
1 drop trigger if exists study.tgr_users_delete; 2 create trigger tgr_users_delete 3 before delete on users 4 for each row 5 begin 6 declare oldusername varchar(20) default 'fan'; 7 set oldusername = old.username; -- old用来表示将要或已经被删除的原数据。 8 end;
③update类型触发器
1 drop trigger if exists study.tgr_users_update; 2 create trigger tgr_users_update 3 before update on users 4 for each row 5 begin 6 declare oldusername varchar(20) default 'fan'; 7 set oldusername = old.username; -- old用来表示将要或已经被修改的原数据 8 set new.username= concat(oldusername,new.username); -- new用来表示将要或已经修改为的新数据 9 end;
⒊查看触发器
1 show triggers from databaseName;
⒋删除触发器
1 drop trigger if exists databaseName.tri_Name;
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/10782798.html
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!