PostgreSQL dblink_build_sql_insert

2021-09-16 15:40 更新

dblink_build_sql_insert — 使用一個(gè)本地元組構(gòu)建一個(gè) INSERT 語(yǔ)句,將主鍵域值替換為提供的值

大綱

dblink_build_sql_insert(text relname,
                        int2vector primary_key_attnums,
                        integer num_primary_key_atts,
                        text[] src_pk_att_vals_array,
                        text[] tgt_pk_att_vals_array) 返回 text

描述

dblink_build_sql_insert在選擇性地將一個(gè)本地表復(fù)制到一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)時(shí)很有用。它基于主鍵從本地表選擇一行,并且接著構(gòu)建一個(gè)復(fù)制該行的INSERT命令,但是其中主鍵值被替換為最后一個(gè)參數(shù)中的值(要?jiǎng)?chuàng)建該行的一個(gè)準(zhǔn)確拷貝,只要為最后兩個(gè)參數(shù)指定相同的值)。

參數(shù)

relname

一個(gè)本地關(guān)系的名稱,例如foo或者myschema.mytab。如果該名稱是大小寫混合的或包含特殊字符,要包括雙引號(hào),例如"FooBar";如果沒(méi)有引號(hào),字符串將被折疊到小寫形式。

primary_key_attnums

主鍵域的屬性號(hào)(從 1 開(kāi)始),例如1 2。

num_primary_key_atts

主鍵域的數(shù)量。

src_pk_att_vals_array

要被用來(lái)查找本地元組的主鍵域值。每一個(gè)域都被表示為文本形式。如果沒(méi)有行具有這些主鍵值,則拋出一個(gè)錯(cuò)誤。

tgt_pk_att_vals_array

要被替換到結(jié)果INSERT命令中的主鍵域值。每一個(gè)域被表示為文本形式。

返回值

將要求的 SQL 語(yǔ)句返回為文本。

注解

PostgreSQL 9.0 開(kāi)始,primary_key_attnums中的屬性號(hào)被解釋為邏輯列號(hào),對(duì)應(yīng)于列在SELECT * FROM relname中的位置。之前的版本將屬性號(hào)解釋為物理列位置。如果指示出的列的左邊有任意列在該表的生存期內(nèi)被刪除,這兩種解釋就有區(qū)別。

例子

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)
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)