MySQL 触发器 'before insert' 中查询为空的原因
为什么在 MySQL 触发器 'before insert' 事件中,使用 SELECT a FROM aaa WHERE a=NEW.a 或者 a=OLD.a 的查询结果都是空内容呢?
这是因为,当触发器的事件为 'before insert' 时,新的记录还未被插入到表中。因此,在查询语句中使用 NEW.a 或 OLD.a 无法找到匹配的记录,导致查询结果为空。
简单来说,在触发器 'before insert' 中使用 NEW 是指代即将被插入的记录,而 OLD 指代尚未被修改的记录。由于此时记录还没有被插入,因此 NEW 和 OLD 都是不存在的。
如果需要在触发器中获取即将插入的新记录的值,可以使用 NEW 伪列,但在 SELECT 语句中,NEW 伪列的值尚未被确定。
原文地址: https://www.cveoy.top/t/topic/m4Qs 著作权归作者所有。请勿转载和采集!