为什么在 MySQL 触发器 'before insert' 事件中,使用 SELECT a FROM aaa WHERE a=NEW.a 或者 a=OLD.a 的查询结果都是空内容呢?

这是因为,当触发器的事件为 'before insert' 时,新的记录还未被插入到表中。因此,在查询语句中使用 NEW.aOLD.a 无法找到匹配的记录,导致查询结果为空。

简单来说,在触发器 'before insert' 中使用 NEW 是指代即将被插入的记录,而 OLD 指代尚未被修改的记录。由于此时记录还没有被插入,因此 NEWOLD 都是不存在的。

如果需要在触发器中获取即将插入的新记录的值,可以使用 NEW 伪列,但在 SELECT 语句中,NEW 伪列的值尚未被确定。

MySQL 触发器 'before insert' 中查询为空的原因

原文地址: https://www.cveoy.top/t/topic/m4Qs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录