dblink_exec
Name
dblink_exec -- 在远程数据库中执行命令
Synopsis
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
在远程数据库中执行命令(即不返回行的任何SQL语句)。
当给定两个text
参数时,第一个作为持久连接名称首先被查找;如果发现了, 那么在连接上执行该命令。如果没有发现, 那么第一个参数被看作dblink_connect
的连接信息字符串, 并且指定连接为了该命令的整个时间段。
参数
conname
要使用的连接名称;省略这个参数使用未命名连接。
connstr
连接信息字符串,如先前描述的dblink_connect
。
sql
你希望在远程数据库中执行的SQL命令, 比如insert into foo values(0,'a','{"a0","b0","c0"}')
。
fail_on_error
如果真(忽略时缺省)那么在连接的远程端抛出的错误也会导致本地抛出错误, 如果假,那么远程错误在本地作为NOTICE被报告, 并且函数的返回值设置为ERROR
。
返回值
返回状态,该命令的状态字符串或者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)