我正在尝试为 MySQL 中的单个表编写一个小型审计系统。
INSERT我在使用基本的//命令时很幸运UPDATE,DELETE但是现在我对审计使用的表很感兴趣INSERT ... ON DUPLICATE KEY UPDATE。
通过使用触发器ON BEFORE INSERT,我可以知道这个事件正在发生,但是我只能获得我感兴趣的一半数据。 NEW.values很容易获得,但我不知道如何获得OLD.values之前的数据。我想我可以使用NEW.ID现有表进行查询,但我不确定性能和可靠性。
我需要,OLD.values因为我为每个更改事件存储了旧值和新值,因为我在某个地方读到了折叠数据等的好主意......
MySQL 5.0(或更新的 GA 版本)有没有办法像我在UPDATE触发器中一样可靠地检索这些值?
编辑:另一个皱纹:
看起来NEW.values更新后的数据不匹配。它们匹配INSERT声明而不是ON DUPLICATE KEY UPDATE实际进入记录的数据。