sql >> データベース >  >> RDS >> Mysql

MySQLで新しいテーブルを作成するときにトリガーを自動的に作成する方法はありますか?

    その他の質問 、ここではプロセスとセキュリティのレビューが必要だと思います。これは監査済みのデータベースであるため、誰も(特に サードパーティのサービスプロバイダー)は、知らないうちにデータベースにテーブルを作成する必要があります 。

    問題は、作成される新しいテーブルだけでなく、監査/変更されたレコードを格納するために別のテーブルを作成する必要があることです。このテーブルは、元のテーブルと同じ構造で、時間/日付が含まれている可能性があります。およびユーザー列。サードパーティプロバイダーがこのテーブルを作成している場合、監査テーブルを作成することを知らないため、トリガーを動的に生成できたとしても、機能しません。

    テーブル間の構造は必然的に異なるため、データベース内の他のすべてのテーブルのすべての変更レコードを保持する単一のテーブルを作成することは不可能です。

    したがって、すべての変更要求を行います(たとえば、プロバイダーがTableXを作成したい場合、変更の理由を説明する変更要求(SQLスクリプトを含む)を自分自身および/またはチームに送信します)。

    データベースのテストコピーでSQLを実行し、同じ構造を使用して、変更されたレコードを保持する別のテーブルを作成します。

    次に、必要なトリガーを作成してテストし、新しいSQLスクリプトを生成して、2つのテーブルとトリガーを作成し、ライブデータベースで実行します。新しいテーブルを使用する権限をプロバイダーに付与すると、それらは使用できなくなります。

    みんな幸せです。はい、少し時間がかかる場合があります。また、やらなければならない作業は多くなりますが、クエリログを解析して、すでに変更されたレコードを再作成するのに必要な作業よりもはるかに少ない作業です。削除するか、バイナリログを解析して、変更のたびに最新の状態に保ち、ログファイルの形式が変更された場合などにコードを変更します。




    1. IDの自動インクリメントをリセットしますか? phpmyadmin

    2. SQLデータベースからの時間のJFreechartチャート

    3. なぜSQLSTATE[HY000]:一般的なエラーですか?

    4. 非オブジェクトのメンバー関数rowCount()の呼び出し