一枚孤独的蛋蛋 2019-08-05 19:16 采纳率: 0%
浏览 972

mysql中before触发器对同一张表的同一个数据进行update操作的执行次序

是这样的,萌新现在正在学习mysql触发器,在Navicat Premium上验证before触发器功能的时候发现了以下问题:

首先我建了一张学生表内容如下:
图片说明

然后我设置一个before触发器如下:

图片说明

即当进行update操作的时候,就将学生的名字改为"小白"

然后我又写了一条sql语句,更新sid=1的学生名字为"小黑"

图片说明

但执行的结果却是:

图片说明

本萌新记得before触发器是先完成触发,再增删改,触发的语句先于监视的增删改。那么按理说,我觉得我以上的操作结果应该是:

    监听到update语句--->触发器触发--->sid=1的学生名字变为小白--->继续执行update语句--->sid学生名字变为小黑。这样才对。

    可为什么,最后的结果却是小白,这不就相当于只执行了before触发器里的语句,sql语句里的uspdate操作没有生效吗?


    但是before触发器不是应该是先监听到监视语句,再触发,最后再执行监视语句吗?这不就跟它的概念不相符了吗?

百度了很久,也没找到想要的答案,在此跪求大佬解答,万分感谢

  • 写回答

1条回答

  • dabocaiqq 2019-08-06 09:33
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器