0

私のアプリケーションでは動的システムを使用しているため、テーブルが既に存在するかどうかを確認し、例外的に必要に応じて作成する必要があります。これは、存在しない場合にテーブルを作成しても問題ありません。

しかし、mysql は create trigger ステートメントで「存在しない場合」をサポートしていないため、トリガーを削除する以外に別の回避策があるかどうかを尋ねたいですか? 毎回トリガーをドロップして再作成するのは意味がありません。欠落しているトリガーを作成したいだけです。このイベントは 1 回発生する必要がありますが、ドロップと再作成は頻繁に発生します。トリガーは、監査/ロギングの目的で必要です。

create ddl を begin/end でラップしてから、例外ハンドラで null を実行できるオラクルの方法でそれを行うことができるのではないでしょうか?

4

2 に答える 2

2

CREATE TRIGGER ステートメントを使用します。トリガーが存在する場合、例外が発生します。それをキャッチしてください。

エラーをキャッチしたくない場合は、存在を確認できます-

SELECT TRIGGER_NAME
FROM information_schema.triggers
WHERE TRIGGER_SCHEMA = 'db_name' AND TRIGGER_NAME = 'trigger_name'
于 2012-06-27T08:29:33.323 に答える
0

テーブルを作成するときにトリガーを作成できます。トリガーの削除に失敗したテーブルを削除する場合は、その前にトリガーを削除する必要があります。

テーブルの作成時にトリガーを作成し、テーブルが存在する場合はトリガーが存在します

于 2012-06-27T08:27:08.037 に答える