You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一表的多BEFORE UPDATE触发器执行时,OLD与NEW值是否变化?

BEFORE UPDATE触发器的OLD/NEW值传递逻辑

当同一张数据表上存在两个执行顺序固定(A先、B后)的BEFORE UPDATE触发器时,OLD和NEW值的引用规则如下:

  • 两个触发器的OLD值完全相同,都是UPDATE操作执行前的原始数据,不会被任何触发器的修改影响。
  • 触发器A中修改后的NEW值,会成为触发器B的NEW值——也就是B所引用的NEW是经过A修改后的结果,而非初始UPDATE语句指定的原始NEW值。

举个直观的例子:假设表中有score字段,原始值为80,执行UPDATE table SET score = 90语句:

  • 触发器A执行时,OLD.score = 80,NEW.score = 90;若A将NEW.score修改为85,
  • 触发器B执行时,OLD.score仍为80,但NEW.score已经是85。

内容的提问来源于stack exchange,提问作者Nolan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:27:26