Stream triggers manipulation interfaces

REPLICA IDENTITY FULL を持つテーブル、またはTOAST が適用される列のないテーブルでのみストリームトリガーを作成できます。

bdr.create_conflict_trigger

この関数は、新しい競合トリガーを作成します。

概要

bdr.create_conflict_trigger(trigger_name text,
                            events text[],
                            relation regclass,
                            function regprocedure,
                            args text[] DEFAULT {})

パラメータ

  • trigger_name —新しいトリガーの名前。

  • events —このトリガーを起動するイベントの配列。有効な値は’INSERT ‘、’UPDATE ‘、および’DELETE ’です。

  • relation —このトリガーを起動するリレーション。

  • function —実行する関数。

  • args —オプション。トリガー関数が実行時に受け取るパラメーターの配列を指定します( TG_ARGV 変数の内容)。

注意事項

この関数は、 DDL ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが ddl filters 構成の影響を受けることを意味します。

このファンクションは、トリガーが作成されているリレーションでグローバルDMLロックを取得します。

この関数はトランザクションです。トランザクションのROLLBACK を使用して、効果をロールバックできます。変更は現在のトランザクションに表示されます。

通常のPostgreSQLトリガーと同様に、 bdr.create_conflict_trigger 関数には、関数に対するrelation およびEXECUTE 特権に対するTRIGGER 特権が必要です。これは、30619以上のbdr.backwards_compatibility に適用されます。追加のセキュリティルールは、PGDで競合トリガーを含むすべてのトリガーに適用されます。

Security and roles を参照してください。

bdr.create_transform_trigger

この関数は、変換トリガーを作成します。

概要

bdr.create_transform_trigger(trigger_name text,
                             events text[],
                             relation regclass,
                             function regprocedure,
                             args text[] DEFAULT {})

パラメータ

  • trigger_name —新しいトリガーの名前。

  • events —このトリガーを起動するイベントの配列。有効な値は’INSERT ‘、’UPDATE ‘、および’DELETE ’です。

  • relation —このトリガーを起動するリレーション。

  • function —実行する関数。

  • args —オプション。トリガー関数が実行時に受け取るパラメーターの配列を指定します( TG_ARGV 変数の内容)。

注意事項

この関数は、 DDL ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが ddl filters 構成の影響を受けることを意味します。

このファンクションは、トリガーが作成されているリレーションでグローバルDMLロックを取得します。

この関数はトランザクションです。トランザクションのROLLBACK を使用して、効果をロールバックできます。変更は現在のトランザクションに表示されます。

通常のPostgreSQLトリガーと同様に、 bdr.create_transform_trigger 関数には、関数に対するrelation およびEXECUTE 特権に対するTRIGGER 特権が必要です。追加のセキュリティ規則は、PGDで変換トリガーを含むすべてのトリガーに適用されます。

Security and roles を参照してください。

bdr.drop_trigger

この関数は、既存のストリームトリガー(競合と変換の両方)を削除します。

概要

bdr.drop_trigger(trigger_name text,
                 relation regclass,
                 ifexists boolean DEFAULT false)

パラメータ

  • trigger_name —既存のトリガーの名前。

  • relation —トリガーが定義されている関係。

  • ifexists — true に設定すると、この関数は欠落しているトリガーを無視します。

注意事項

この関数は、 DDL ステートメントと同じレプリケーションメカニズムを使用します。これは、レプリケーションが ddl filters 構成の影響を受けることを意味します。

このファンクションは、トリガーが作成されているリレーションでグローバルDMLロックを取得します。

この関数はトランザクションです。トランザクションのROLLBACK を使用して、効果をロールバックできます。変更は現在のトランザクションに表示されます。

relation の所有者のみがbdr.drop_trigger 関数を実行できます。