1

MySQL データベースのデータに対するすべての変更を追跡する必要がある状況があります。

たとえば、「customers」テーブルには、その顧客との取引の危険性を示す評価が含まれるフィールドがあります。このフィールドが変更されるたびに、ログに記録する必要があります。これにより、たとえば、「以前は 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 に答える