0

データベースの特定のフィールドが mysql の特定のユーザー名によって更新されているかどうかを確認することはできますか?

例:

DBNumber1 には、contactsTable が含まれています。contactTable には、firstName、lastName、phoneNumber が含まれています。

UserA (db アカウント) がレコード (id=102) を作成します。そのレコードのすべてのフィールドは、日付と時刻に彼によって「最終更新」されました。UserB がそのレコードを更新します (102)。彼は誤った電話番号を変更しました。firstName と lastName は「UserA が date+time に最後に更新した」必要があり、phoneNumber は「UserB が別の date+time に最後に更新した」必要があります。

これまでに行ったことは、最後に更新されたデータベースに列を追加することでしたが、これをレコードだけでなくすべてのフィールドに追加したいと思います。これは可能ですか?

4

2 に答える 2

1

更新時に実行されるトリガーを作成します。古い値と新しい値を比較して、別の「ログ」テーブルにユーザー名と現在の時刻、行 ID などのトランザクション データを挿入するなどのアクションを実行します。

于 2013-04-12T11:36:19.940 に答える
0

Mysql がこれを認識していないことはほぼ確実です。できることは、記録したい列ごとに last_updated 列を追加することです。または、自動化されていないログが必要な場合は、バイナリログを有効にします(ログにユーザー名が含まれているかどうかを確認する必要があります。含まれていると思います)。ただし、そこからデータを取得するには (比較的) かなりの作業が必要になるため、これは必要性がほとんどないと思われる場合にのみ使用してください。

于 2013-04-12T11:32:18.130 に答える