MYSQL8触发器
MYSQL8触发器MYSQL8触发器简介触发器的特性操作-创建触发器数据准备Before与After区别after插入数据后记录需求实现代码before成功修改数据后记录需求实现代码NEW和OLD使用方法NEW示例需求记录添加的数据OLD示例需求记录修改前信息需求记录删除信息查看触发器删除触发器MySQL触发器注意事项MYSQL8触发器简介触发器就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段但是触发器无需调用当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行无需手动调用。在MySQL中只有执行insert、delete、updateDML语言操作时才能触发触发器的执行。触发器的这种特性可以协助应用在数据库端确保数据的完整性日志记录数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容这与其他的数据库是相似的。现在触发器还只支持行级触发不支持语句级触发。触发器定义在一个表上结构包含begin和end标识段定义这个触发器的时候需要指定三个核心要素触发器的特性操作-创建触发器1、创建只有一个执行语句的触发器CREATETRIGGER触发器名 before|after触发事件ON表名FOR EACH ROW执行语句;2、创建有多个执行语句的触发器createtrigger触发器名 before|after触发事件on表名for each rowbegin执行语句列表end;数据准备-- 创建数据库CREATEdatabaseifNOTEXISTSmydb10_trigger;-- 进入 数据库usemydb10_trigger;-- 创建用户表CREATETABLEUSER(uidintPRIMARYkey,usernamevarchar(50)NOTNULL,passwordvarchar(50)NOTNULL);-- 用户信息操作日志表CREATETABLEuser_logs(idintPRIMARYkeyauto_increment,timetimestamp,log_textvarchar(255));Before与After区别在MySQL8中触发器可以定义为在INSERT、UPDATE和DELETEDML语言语句执行之前BEFORE或之后AFTER自动执行的一组指令。BEFORE前置条件AFTER后置条件BEFORE触发器是在实际数据更改操作之前执行的。它们通常用于验证将要插入、更新或删除的数据是否符合特定的条件以及在执行操作之前对其进行修改。BEFORE触发器还可以用于检查外键约束或确保数据的完整性。AFTER触发器是在数据插入、更新或删除操作已经完成之后执行的。它们通常用于记录日志或执行其他操作这些操作可能需要在数据进行更改后才能执行。AFTER触发器还可以用于计算汇总值或执行其他聚合操作。因此区别在于BEFORE触发器在执行实际数据更改操作之前执行而AFTER触发器在执行完实际数据更改操作之后执行。after事件后执行先完成业务增删改然后再执行触发器语句触发器语句晚于监视业务的增删改。- 不能对new进行修改。 - after insert - after update - after deletebefore事件前执行先完成触发器语句再进行业务增删改触发语句先于监视业务的增删改。- (insert、update)可以对new进行修改。 - before insert - before update - before delete两者都不能修改old数据。after插入数据后记录需求需求1:当user表添加一行数据则会自动在user_log表中添加日志记录实现代码after insert中的after关键字表示触发器在插入业务数据操作之后触发执行。也就是说当有新数据行被插入到指定的业务数据表时该触发器会在这些数据行被成功插入后立即执行。on user指定了触发器所绑定的数据表for each row表示对每一行数据都执行一次触发器操作。-- 触发器CREATEtriggertrigger_test1afterinsertonuserfor each rowinsertintouser_logsvalues(null,now(),有新用户添加);before成功修改数据后记录需求– 需求2: 当user表数据被修改时则会自动在user_log添加日志记录实现代码before updatebefore表示在更新操作之前触发执行。on user指定了触发器所绑定的数据表for each row表示对每一行数据都执行一次触发器操作。-- 需求2: 当user表数据被修改时则会自动在user_log添加日志记录DELIMITER$$-- before update表示数据被成功修改后记录createtriggertrigger_test2 beforeupdate-- on user表示绑定(坚实)user表-- for each row ,表示每次变更都执行记录onuserfor each rowBEGIN-- 当user表的数据被成功修改后执行这段sql往user_logs表中插入信息insertintouser_logsvalues(null,now(),有用户信息被修改);END$$DELIMITER;NEW和OLDNEW新行OLD旧行当在触发器中编写INSERT、UPDATE或DELETE语句时“new” 和 “old” 分别代表触发器所针对的表中被修改即被更新、插入或删除的新行和旧行。如果触发器是在INSERT操作之前被触发那么 “new” 代表将要被插入到表中的新行。如果是在UPDATE或DELETE操作之前被触发那么 “old” 代表将要被更新或删除的行而 “new” 代表更新后或者删除后将要被插入到表中的新行。MYSQL中定义了NEW和OLD用来表示触发器的所在表中触发了触发器的那一行数据来引用触发器中发生变化的记录内容具体如下触发器类型触发器类型NEW和OLD的使用INSERTNEW表示将要或者已经新增的数据UPDATEOLD表示修改之前的数据NEW表示将要或已经修改后的数据DELETEOLD表示将要或者已经删除的数据使用方法NEW.相应数据表的列名NEW示例需求记录添加的数据-- NEW-- after insert类型定义触发器-- after事后记录CREATEtriggertrigger_test3afterinsertonuserfor each rowinsertintouser_logsvalues(null,now(),concat(有新用户添加信息为,NEW.uid,NEW.username,NEW.password));OLD示例需求记录修改前信息-- OLD-- 记录修改前的信息CREATEtriggertrigger_test4afterupdateonuserfor each rowinsertintouser_logsvalues(null,NOW(),concat(有用户信息被修改,信息修改前为OLD.uid,OLD.username.OLD.password));需求记录删除信息-- 记录删除信息CREATEtriggertrigger_test6afterdeleteonuserfor each rowinsertintouser_logsvalues(null,NOW(),concat_ws(,,有用户被删除被删除用户信息为,OLD.uid,OLD.username,OLD.password));查看触发器-- 查看触发器showtriggers;删除触发器-- 删除触发器droptriggerifexists触发器名称;MySQL触发器注意事项1、MYSQL中触发器中不能对本表进行insert,update,delete操作以免递归循环触发2、尽量少使用触发器假设触发器触发每次执行1sinsert table 500条数据那么就需要触发500次触发器光是触发器执行的时间就花费了500s而insert 500条数据一共是1s那么这个insert的效率就非常低了。3、触发器是针对每一行的对增删改非常频繁的表上切记不要使用触发器因为它会非常消耗资源。

相关新闻

3个终极技巧:让Buzz语音转写模型下载不再卡顿

3个终极技巧:让Buzz语音转写模型下载不再卡顿

3个终极技巧:让Buzz语音转写模型下载不再卡顿 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 想象一下这样的场景…

2026/8/13 14:01:04 阅读更多 →
API验证器,帮助ReSharper开启VS插件新时代!

API验证器,帮助ReSharper开启VS插件新时代!

实质上,ReSharper特征可用于C#,VB.net,XML,Asp.net,XAML,和构建脚本。 使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范…

2026/8/18 0:30:32 阅读更多 →
IPTV频道检测神器:3分钟完成300个频道可用性验证的终极指南

IPTV频道检测神器:3分钟完成300个频道可用性验证的终极指南

IPTV频道检测神器:3分钟完成300个频道可用性验证的终极指南 【免费下载链接】iptv-checker IPTV checker tool for Docker && CMD, check your playlist is available 项目地址: https://gitcode.com/GitHub_Trending/ip/iptv-checker 在数字娱乐时代…

2026/8/17 10:00:41 阅读更多 →

最新新闻

HsMod 炉石插件零基础实战指南:从安装避坑到按场景调优

HsMod 炉石插件零基础实战指南:从安装避坑到按场景调优

HsMod 炉石插件零基础实战指南:从安装避坑到按场景调优 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 如果你是炉石传说玩家,大概都经历过这样几个瞬间&#xff1a…

2026/8/18 16:31:59 阅读更多 →
保姆级指南:用 OpenCore Legacy Patcher 给老 Mac 装上新版 macOS

保姆级指南:用 OpenCore Legacy Patcher 给老 Mac 装上新版 macOS

保姆级指南:用 OpenCore Legacy Patcher 给老 Mac 装上新版 macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你的 Mac 是不是也弹过那句扎心…

2026/8/18 16:31:59 阅读更多 →
SingGuard-NSFA-4B是什么?蚂蚁集团开源智能体AI安全护栏终极指南

SingGuard-NSFA-4B是什么?蚂蚁集团开源智能体AI安全护栏终极指南

SingGuard-NSFA-4B是什么?蚂蚁集团开源智能体AI安全护栏终极指南 【免费下载链接】SingGuard-NSFA-4B 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/SingGuard-NSFA-4B SingGuard-NSFA-4B 是蚂蚁集团 SingGuard 团队(AI 安全实验室…

2026/8/18 16:31:59 阅读更多 →
【信息科学与工程学】第一百五十九篇 网络处理器(NP)与 ASIC 的指令集01

【信息科学与工程学】第一百五十九篇 网络处理器(NP)与 ASIC 的指令集01

以下基于网络处理器(NP)与 ASIC 的通用公开架构进行建模——NP 内部由微码处理器 + 硬件协处理器组成,转发引擎使用专用精简指令集,针对数据读写、状态判断、哈希查找等网络处理操作优化;ASIC 则以硬连线逻辑实现最高性能 。 🎯 总览:ASIC/NP 包处理指令体系 现代 NP …

2026/8/18 16:31:59 阅读更多 →
小说批量下载完整指南:novel-downloader 帮你轻松备份 100+ 网站的离线书库

小说批量下载完整指南:novel-downloader 帮你轻松备份 100+ 网站的离线书库

小说批量下载完整指南:novel-downloader 帮你轻松备份 100 网站的离线书库 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 那天晚上十一点,你照例点开追了三年…

2026/8/18 16:31:59 阅读更多 →
老旧Mac如何免费升级最新macOS?OpenCore Legacy Patcher完整上手指南

老旧Mac如何免费升级最新macOS?OpenCore Legacy Patcher完整上手指南

老旧Mac如何免费升级最新macOS?OpenCore Legacy Patcher完整上手指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 如果你的Mac是2014年、2015年…

2026/8/18 16:30:59 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →