2017-04-01 9 views
1

INSERTにルールを適用する際のルールは何ですか?PostgreSQL RULE order

レコードが挿入された後、またはレコードが挿入される前に完了しますか。

私がしようとしているのは、INSERTされたレコードにリンクする別のテーブルに新しいレコードを作成することです。

たとえば、新しいページを作成するルールを作成するには、ドキュメントが作成されたときに、ドキュメントが常に空のページレコードで始まるようにします。

私は高低に見えましたが、おそらくGoogleに間違った質問をしていますが、RULESの実行順序についてのドキュメントは見つかりません。

答えて

0

Quote from the manual

同一のテーブルと同じイベントタイプに複数のルールはアルファベット名の順序で適用されます。

したがって、順序はルールの種類に依存せず、名前にのみ依存します。

そしてそれはまた、ルールはルールは本当にコマンド変換機構、またはコマンドマクロであることを認識することが重要である

を「適用」される方法を説明します。 コマンドの実行が開始される前に変換が行われます

重点鉱山

だから、ルールは「前」またはステートメントの実行「の後に」起こらない - それは、代わりにその文のをを実行します。私がやろうとしています何


挿入されたレコードにリンクされる、別のテーブルに新しいレコードを作成することです。

あなたは間違いなくAFTERそのためトリガーを挿入します。ルールについては忘れてください。

マニュアルが推奨するものもある。

あなたが実際に各物理行のために独立して発射する操作をしたい場合、あなたはおそらく、トリガー、ないルール

+0

うーんを使用したいです、しかし、 'ALSO'のルールはどういうものなのですか?これは「元のコマンドに加えて」実行されるので、順序があるべきでしょうか? –