dblink_build_sql_update(text relname, int2vector primary_key_attnums, int2 num_primary_key_atts, text[] src_pk_att_vals_array, text[] tgt_pk_att_vals_array) returns text
dblink_build_sql_update
はローカル側のテーブルの一部を選択した複製をリモートデータベースに行う場合に有用になる可能性があります。
これはプライマリキーによりローカルテーブルから行を選択し、そのプライマリキー値を最後の引数で与えた値に置き換えて、行を複製するUPDATE SQLコマンドを構築します。
(行をそのまま複製する場合は、単に最後の2つの引数に同じ値を指定してください。)
このUPDATEコマンドは常に行のすべてのフィールドを代入します。
この関数とdblink_build_sql_insert
の主な違いは、対象の行がリモート側のテーブルにすでに存在すると仮定している点です。
例えばfooやmyschema.mytabといったローカル側のリレーションの名前です。 例えば"FooBar"のように名前に大文字小文字が混在する場合や特殊文字が含まれる場合は二重引用符で括ってください。 引用符がないと文字列は小文字に変換されます。
例えば1 2といった、プライマリキーフィールドの属性番号(1始まり)です。
プライマリキーフィールドの個数です。
ローカルタプルを検索するために使用されるプライマリキーフィールドの値です。 各フィールドはテキスト形式で表されます。 これらのプライマリキーの値を持つ行がローカル側に存在しない場合はエラーが発生します。
最終的なUPDATEコマンドにおいて置き換えられるプライマリキーフィールドの値です。 各フィールドはテキスト形式で表されます。