PostgreSQL dblink_exec

2021-09-16 15:38 更新

dblink_exec — 在一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)中執(zhí)行一個(gè)命令

大綱

dblink_exec(text connname, text sql [, bool fail_on_error]) returns text
dblink_exec(text connstr, text sql [, bool fail_on_error]) returns text
dblink_exec(text sql [, bool fail_on_error]) returns text

描述

dblink_exec在一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)中執(zhí)行一個(gè)命令(也就是,任何不返回行的 SQL 語(yǔ)句)。

當(dāng)給定兩個(gè)text參數(shù)時(shí),第一個(gè)被首先作為一個(gè)持久連接的名稱進(jìn)行查找;如果找到,該命令會(huì)在該連接上被執(zhí)行。如果沒(méi)有找到,第一個(gè)參數(shù)被視作一個(gè)用于dblink_connect的連接信息字符串,并且被指出的連接只是在這個(gè)命令的持續(xù)期間被建立。

參數(shù)

connname

要使用的連接名。忽略這個(gè)參數(shù)將使用未命名連接。

connstr

如之前為dblink_connect所描述的一個(gè)連接信息字符串。

sql

你希望在遠(yuǎn)程數(shù)據(jù)庫(kù)中執(zhí)行的 SQL 命令,例如insert into foo values(0, 'a', '{"a0","b0","c0"}')。

fail_on_error

如果為真(忽略時(shí)的默認(rèn)值),那么在連接的遠(yuǎn)端拋出的一個(gè)錯(cuò)誤也會(huì)導(dǎo)致本地拋出一個(gè)錯(cuò)誤。如果為假,遠(yuǎn)程錯(cuò)誤只在本地被報(bào)告為一個(gè) NOTICE,并且該函數(shù)的返回值被設(shè)置為ERROR

返回值

返回狀態(tài),可能是命令的狀態(tài)字符串或ERROR。

例子

SELECT dblink_connect('dbname=dblink_test_standby');
 dblink_connect
----------------
 OK
(1 row)

SELECT dblink_exec('insert into foo values(21, ''z'', ''{"a0","b0","c0"}'');');
   dblink_exec
-----------------
 INSERT 943366 1
(1 row)

SELECT dblink_connect('myconn', 'dbname=regression');
 dblink_connect
----------------
 OK
(1 row)

SELECT dblink_exec('myconn', 'insert into foo values(21, ''z'', ''{"a0","b0","c0"}'');');
   dblink_exec
------------------
 INSERT 6432584 1
(1 row)

SELECT dblink_exec('myconn', 'insert into pg_class values (''foo'')',false);
NOTICE:  sql error
DETAIL:  ERROR:  null value in column "relnamespace" violates not-null constraint

 dblink_exec
-------------
 ERROR
(1 row)
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)