1

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

例如,我们在“客户”表中有一个字段,其中包含一个评级,表明与该客户做生意的风险有多大。每当更改此字段时,我都需要将其记录下来,以便我们可以返回并说“好吧,他们是 3,现在他们是 8,”例如。在 MySQL 中是否有任何自动化的方法来处理这个问题,或者我只需将大量的更改跟踪逻辑写入应用程序本身?

4

1 回答 1

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 $$
于 2011-07-06T22:48:28.790 回答