dblink_build_sql_delete <refpurpose>builds a DELETE statement using supplied values for primary key field values — 主キーフィールドの値として提供された値を使用したDELETE文を構築します
dblink_build_sql_delete(text relname, int2vector primary_key_attnums, integer num_primary_key_atts, text[] tgt_pk_att_vals_array) returns text
<function>dblink_build_sql_delete</function> can be useful in doing selective
replication of a local table to a remote database. It builds an SQL
<command>DELETE</command> command that will delete the row with the given
primary key values.
dblink_build_sql_delete
はローカル側のテーブルの一部を選択した複製をリモートデータベースに行う場合に有用になる可能性があります。
これは指定した主キーの値を持つ行を削除するDELETE
SQLコマンドを構築します。
relname
Name of a local relation, for example <literal>foo</literal> or
<literal>myschema.mytab</literal>. Include double quotes if the
name is mixed-case or contains special characters, for
example <literal>"FooBar"</literal>; without quotes, the string
will be folded to lower case.
例えばfoo
やmyschema.mytab
といったローカル側のリレーションの名前です。
例えば"FooBar"
のように名前に大文字小文字が混在する場合や特殊文字が含まれる場合は二重引用符で括ってください。
引用符がないと文字列は小文字に変換されます。
primary_key_attnums
Attribute numbers (1-based) of the primary key fields,
for example <literal>1 2</literal>.
例えば1 2
といった、主キーフィールドの属性番号(1始まり)です。
num_primary_key_atts
The number of primary key fields. 主キーフィールドの個数です。
tgt_pk_att_vals_array
Values of the primary key fields to be used in the resulting
<command>DELETE</command> command. Each field is represented in text form.
最終的なDELETE
コマンドにおいて使用される主キーフィールドの値です。
各フィールドはテキスト形式で表されます。
要求したSQL文をテキストとして返します。
As of <productname>PostgreSQL</productname> 9.0, the attribute numbers in
<parameter>primary_key_attnums</parameter> are interpreted as logical
column numbers, corresponding to the column's position in
<literal>SELECT * FROM relname</literal>. Previous versions interpreted the
numbers as physical column positions. There is a difference if any
column(s) to the left of the indicated column have been dropped during
the lifetime of the table.
PostgreSQL 9.0の段階で、primary_key_attnums
の中の属性数は、SELECT * FROM relname
内の列の位置に対応する、論理的列数として翻訳されます。
以前のバージョンは物理的な列の位置として数を翻訳しました。
テーブルの存続期間中に、表示された列の左側のどんな列でも削除されると差異が生じます。
SELECT dblink_build_sql_delete('"MyFoo"', '1 2', 2, '{"1", "b"}'); dblink_build_sql_delete --------------------------------------------- DELETE FROM "MyFoo" WHERE f1='1' AND f2='b' (1 row)