データベース内の任意のテーブルの更新をインターセプトするトリガーを作成したいのですが、すべての更新をインターセプトできるように、トリガーが作成されているテーブルを指定しない方法はありますか?
何かのようなもの:
create trigger interceptor
after update on ANY_TABLE
....
データベース内の任意のテーブルの更新をインターセプトするトリガーを作成したいのですが、すべての更新をインターセプトできるように、トリガーが作成されているテーブルを指定しない方法はありますか?
何かのようなもの:
create trigger interceptor
after update on ANY_TABLE
....
これは不可能です。テーブルごとに個別のトリガーを作成する必要があります。
ただし、上記のコメントが示すように、すべてのトリガーが同じストアドプロシージャを呼び出すことができます。監査ログを更新するには、MySQL5.1で抽象トリガーが必要です。
information_schema
さらに、トリガーを自動的に削除して(再)作成し、DB構造を更新するたびにこのスクリプトを呼び出すことで、DB内のすべてのテーブルをループするプロシージャを作成することもできます。