0

我正在尝试为 MySQL 中的单个表编写一个小型审计系统。

INSERT我在使用基本的//命令时很幸运UPDATEDELETE但是现在我对审计使用的表很感兴趣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实际进入记录的数据。

4

1 回答 1

0

看起来触发事件ON AFTER UPDATE 捕捉到了ON DUPLICATE KEY UPDATE变化。从这里,我能够获取 OLD/NEW 值并执行我需要执行的日志记录。

于 2013-03-01T18:25:31.303 回答