dblink_build_sql_insert — 使用本地元組建立 INSERT 語句,並將主鍵欄位值替換為提供的替代值
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) returns text
dblink_build_sql_insert
在將本地表格選擇性複製到遠端資料庫時很有用。它根據主鍵從本地表格中選取一列,然後建立一個 SQL INSERT
命令,該命令將複製該列,但主鍵值將被最後一個引數中的值替換。(若要建立該列的精確副本,只需為最後兩個引數指定相同的值。)
relname
本地關係的名稱,例如 foo
或 myschema.mytab
。如果名稱是混合大小寫或包含特殊字元,請包含雙引號,例如 "FooBar"
;如果沒有引號,字串將會被摺疊為小寫。
primary_key_attnums
主鍵欄位的屬性編號(從 1 開始),例如 1 2
。
num_primary_key_atts
主鍵欄位的數量。
src_pk_att_vals_array
用於查詢本地元組的主鍵欄位的值。每個欄位都以文字形式表示。如果沒有具有這些主鍵值的本地列,則會擲出錯誤。
tgt_pk_att_vals_array
將放置在產生的 INSERT
命令中的主鍵欄位的值。每個欄位都以文字形式表示。
以文字形式回傳請求的 SQL 語句。
從 PostgreSQL 9.0 開始,primary_key_attnums
中的屬性編號被解譯為邏輯欄位編號,對應於欄位在 SELECT * FROM relname
中的位置。先前的版本將編號解譯為實體欄位位置。如果指示欄位左側的任何欄位在表格的生命週期中被刪除,則存在差異。
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)
如果您在文件中發現任何不正確、與您使用特定功能的體驗不符或需要進一步釐清的內容,請使用此表單回報文件問題。