dblink_build_sql_insert

名前

dblink_build_sql_insert -- ローカル側のタプルを使用し、プライマリキーフィールドの値を別の提供される値に置き換えてINSERT文を構築します。

概要

    dblink_build_sql_insert(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_insertはローカル側のテーブルの一部を選択した複製をリモートデータベースに行う場合に有用になる可能性があります。 これはプライマリキーによりローカルテーブルから行を選択し、そのプライマリキー値を最後の引数で与えた値に置き換えて、行を複製するINSERT SQLコマンドを構築します。 (行をそのまま複製する場合は、単に最後の2つの引数に同じ値を指定してください。)

引数

relname

例えばfoomyschema.mytabといったローカル側のリレーションの名前です。 例えば"FooBar"のように名前に大文字小文字が混在する場合や特殊文字が含まれる場合は二重引用符で括ってください。 引用符がないと文字列は小文字に変換されます。

primary_key_attnums

例えば1 2といった、プライマリキーフィールドの属性番号(1始まり)です。

num_primary_key_atts

プライマリキーフィールドの個数です。

src_pk_att_vals_array

ローカルタプルを検索するために使用されるプライマリキーフィールドの値です。 各フィールドはテキスト形式で表されます。 これらのプライマリキーの値を持つ行がローカル側に存在しない場合はエラーが発生します。

tgt_pk_att_vals_array

最終的なINSERTコマンドにおいて置き換えられるプライマリキーフィールドの値です。 各フィールドはテキスト形式で表されます。

戻り値

要求したSQL文をテキストとして返します。

 test=# select dblink_build_sql_insert('foo', '1 2', 2, '{"1", "a"}', '{"1", "b''a"}');
              dblink_build_sql_insert
 --------------------------------------------------
  INSERT INTO foo(f1,f2,f3) VALUES('1','b''a','1')
 (1 row)
   
アダルトレンタルサーバー