一枚孤独的蛋蛋 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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗