我想将所有更改存储到我的表中(在MySQL中)。我创建了一个表'audit'来跟踪一个表中所有表的所有更改(因此我不必为每个表创建审计表)。
然后我为每个表和一个将记录插入审计表的存储过程创建了触发器。存储过程的参数是tablename和主id。现在,我可以跟踪数据库中每条记录的插入/更新/删除日期。
但我也希望通过此过程跟踪DATA的所有更改。为此,我必须找到一种方法来使用存储过程中触发器的OLD和NEW记录。
有人知道怎么做吗? 也许将某些记录OLD和NEW序列化为字符串??
答案 0 :(得分:0)
我可以推导出的唯一解决方案是检查OLD&我表中每个字段的新值。
BEGIN
-- record changes to table log_new
IF OLD.fieldA != NEW.fieldA
OR OLD.fieldB != NEW.fieldB
THEN
INSERT INTO log_new (