削除時にカスケードする MySQL テーブルに外部キー制約を設定しています。ユーザーを削除するときに影響を受ける他のすべてのテーブルと行を追跡する必要があります。これは、関連する物理ファイルも削除する必要があるためです。これをログに記録する方法はありますか?
1088 次
2 に答える
2
追跡したい各テーブルにトリガーを追加することで、次のように簡単に実行できます。
- 監査テーブルにフィードする
- バックグラウンド ジョブを実行して、対応するファイルを削除します
ミッチが言ったように、正確に何をしたいのかはあなた次第です。
たとえば、履歴の目的で行を保持することもできます。この場合、テーブルで「deleted」フラグを使用して独自の行「抑制」を実装できるため、行を削除するときはいつでもフラグを 1 に設定できます。[...]
于 2012-06-02T01:01:06.600 に答える
1
違うと思う。しかし、ちょっとしたトリックを行うことができます。たとえば、テーブル A のレコードを削除する前に、削除されたレコードに関連する他のテーブルのすべてのレコードを選択します。
$sql = "SELECT Id FROM b WHERE b.a_id ='$deleted_A_Id'";
//delete physical file and any other things
$sql = "DELETE FROM A where A.id = '$deleted_A_Id'";
//just exec sql the normal way
于 2012-06-02T00:55:00.243 に答える