一枚孤独的蛋蛋 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 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿