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

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

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

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

图片说明

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

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

图片说明

但执行的结果却是:

图片说明

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

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

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


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

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

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问