1

データベース内の任意のテーブルの更新をインターセプトするトリガーを作成したいのですが、すべての更新をインターセプトできるように、トリガーが作成されているテーブルを指定しない方法はありますか?

何かのようなもの:

 create trigger interceptor
 after update on ANY_TABLE
 ....
4

1 に答える 1

1

これは不可能です。テーブルごとに個別のトリガーを作成する必要があります。

ただし、上記のコメントが示すように、すべてのトリガーが同じストアドプロシージャを呼び出すことができます。監査ログを更新するには、MySQL5.1で抽象トリガーが必要です。

information_schemaさらに、トリガーを自動的に削除して(再)作成し、DB構造を更新するたびにこのスクリプトを呼び出すことで、DB内のすべてのテーブルをループするプロシージャを作成することもできます。

于 2012-11-09T20:48:39.683 に答える