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 関数を実行できます。