0

私は次のようなトリガーを書きました

CREATE TRIGGER myTrigger
INSTEAD OF INSERT ON myTable
EXECUTE PROCEDURE myFunction(); 

INSTEAD OFしかし、トリガーをテーブルに適用できないことを知りました。

それを行う唯一の方法は、

BEFORE OF INSERT

トリガーは、他のテーブルでいくつかの値 (ユーザーが挿入関数を呼び出すときは不明) を取得し、この値を起動クエリ内に挿入して実行する必要があります。これどうやってするの?

4

1 に答える 1

1

次のような PL/PgSQL トリガーを作成します。

  • 操作tg_opINSERTUPDATEまたはDELETE;であるかどうかを確認します。と

  • 操作の種類に基づいて、NEWand/orOLD疑似変数を使用して、実際のターゲット テーブルでINSERTs、UPDATEs、またはs を構築および実行します。DELETEそれから

  • NULL元のターゲット テーブルでアクションが実行されないように戻ります。

PL/PgSQL トリガーに関する基本的なドキュメントを参照してください。

ただし、テーブルの継承を使用していない限り、これは非常に奇妙なことです。

于 2013-08-11T09:58:03.170 に答える