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 のTRIGGER 特権とファンクションのEXECUTE 特権が必要です。これは、bdr.backwards_compatibility が30619以上の場合に適用されます。 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 のTRIGGER 特権とファンクションのEXECUTE 特権が必要です。 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 ファンクションを実行できます。