更新前触发和更改字段新旧

zbdgwd5y  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(384)

在更新触发器和更改字段之前
如果一个记录被更新了,我有一个触发器来处理数据中的一些列,其中一个字段是“数量”,当其他的列/字段被更改时,它可以更改也可以不更改,从而导致触发器被执行
如果数量改变了,我想执行逻辑,如果没有改变,我不想采取任何行动,“数量”的值保持不变。
似乎如果数量不变,“旧数量”和“新数量”的值就不同了
我可以使用什么条件来查看“数量”是否已更改
如果“数量”不变,new.qty=“null”的值将保持不变

3yhwsihp

3yhwsihp1#

当柱 c1 是不变的,a BEFORE UPDATE 触发器将有 OLD.c1 以及 NEW.c1 设置为相同的值,因为这是更新前后的值。
表达式 (OLD.c1 <=> NEW.c1) 评估为 TRUE 当列值不变时,else FALSE .
表达式 (NOT (OLD.c1 <=> NEW.c1)) 评估为 TRUE 如果列值更改,则为 FALSE .
不要使用 = 或者 != 或者 <> 对于更新触发器中的比较,除非您完全理解3vl的含义,因为它们不是空安全运算符。

相关问题