2011-07-06 15 views
1

私は、MySQLデータベースのデータに対するすべての変更を追跡する必要がある状況があります。MySQL - DB内の*データ*の変更の追跡?

たとえば、「customers」テーブルには、その顧客とのビジネスの危険性を示すフィールドがあります。このフィールドが変更されたときはいつでも、私はそれを記録して戻って、「よく3人だったが、今は8人だ」と言えるようにする必要があります。これをMySQLで処理するための自動化された方法はありますか?それとも、アプリケーション自体に変更追跡ロジックをたくさん書き込まなければならないのでしょうか?

答えて

2

これは、5+バージョンのMySQLを使用していると仮定して、トリガーが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 $$ 
関連する問題