MySQL - 更改数据库中* data *的跟踪?

时间:2011-07-06 22:39:05

标签: mysql audit change-tracking

我有一种情况需要跟踪MySQL数据库中数据的所有更改。

例如,我们在“客户”表中有一个字段,其中包含一个评级,表明与该客户开展业务的风险程度。每当这个字段改变时,我需要记录它,所以我们可以回去说“好吧他们是3,现在他们是8”,例如。在MySQL中是否有任何自动处理方法,或者我只需要在应用程序本身中编写大量的更改跟踪逻辑?

1 个答案:

答案 0 :(得分:2)

这是触发器的类型是为MySQL内部设计的,假设您使用的是5+版本的MySQL。

CREATE TRIGGER log_change_on_table BEFORE UPDATE ON customers
    FOR EACH ROW
        BEGIN
            INSERT INTO customer_log (customer_id, rating, date)
                VALUES (OLD.customer_id, OLD.rating, now())
        END $$