0

トリガー内でトリガーを無効にして再度有効にすることはできますか?

たとえば、2 つの場所のいずれかに配置できるフロントエンド アプリケーションに情報があります。誰かが A の場所に置いたら、B の場所にコピーしたいです。

したがって、私の考えは、異なるテーブルに 2 つのトリガーを配置することです。

これにより、終わりのないループが作成されます (私は推測しますか?) ので、トリガー 2 の実行中にトリガー 1 を無効にし、最後に有効にすることはできますか?

4

3 に答える 3

1

同じデータベース内の2つのテーブルにデータを複製することは一般的に望ましくないというダミアンのコメントに同意しますが、これを行う正当な理由がある場合は、INSTEAD OFトリガーの代わりにAFTERトリガーを使用できます(これは現在見ていると思います)。そうすれば、自分でコーディングして制御するINSERT2つの別々のシングルを「置き換える」ことができます。INSERTs

于 2012-07-06T22:16:10.177 に答える
0

または、ループを終了する更新を行う前に、トリガーで情報が変更されたかどうかを確認できますか?

于 2012-07-06T12:03:37.653 に答える
0

はい、できます:

ALTER TABLE tablename DISABLE TRIGGER triggername
ALTER TABLE tablename ENABLE TRIGGER triggername

ただし、あなたのソリューションでは、両側で同じように実行され、混乱しないほど賢いトリガーを作成します。

つまり、ユーザー/クライアントの INSERT とトリガー 'MOVE' をインテリジェントに区別するトリガーを作成します。

于 2012-07-06T12:02:11.007 に答える