关于Mysql触发器

关于:
after触发器—是在记录操纵之后触发,是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作
before触发器—是在记录操纵之前触发,是先完成触发,再增删改,触发的语句先于监视的增删改,我们就有机会判断,修改即将发生的操作,
如:我们在触发之前需要判断new值和old值的大小或关系,如果满足要求就触发,不通过就修改再触发。
如:表之间定义的有外键,在删除主键时,必须要先删除外键表,这时就有先后之分,这里before相当于设置了断点,我们可以处理删除外键。
BEFORE 用于数据验证和净化;
AFTER 用于审计跟踪,将修改记录到另外一张表中。

  • 对于INSERT语句, 只有NEW是合法的;
  • 对于DELETE语句,只有OLD才合法;
  • 对于UPDATE语句,NEW、OLD可以同时使用。

语法:
CREATE TRIGGER mytrigger AFTER INSERT ON mytable FOR EACH ROW SELECT NEW.col into @result; SELECT @result; -- 获取结果
在插入mytable表格后 查询获取结果
navicat中的创建

针对单个字段的变更跟新其时间字段:
if (new.更改目标 <> old.更改目标) then set new.状态时间= now(); end if

posted @   Mayday-zhou  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示