On this page
dblink_exec
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
Description
dblink_exec
在远程数据库中执行命令(即,任何不返回行的 SQL 语句)。
当给出两个text
参数时,首先将第一个作为持久连接的名称查找;如果找到,则在该连接上执行命令。如果未找到,则将第一个参数视为与dblink_connect
一样的连接信息字符串,并且仅在此命令期间进行指示的连接。
Arguments
connname
- 使用的连接名称;忽略此参数以使用未命名的连接。
connstr
- 连接信息字符串,如先前针对
dblink_connect
所述。
- 连接信息字符串,如先前针对
sql
- 您希望在远程数据库中执行的 SQL 命令,例如
insert into foo values(0,'a','{"a0","b0","c0"}')
。
- 您希望在远程数据库中执行的 SQL 命令,例如
fail_on_error
- 如果为 true(省略时的默认值),则在连接的远程端引发的错误也将导致本地引发错误。如果为 false,则将远程错误本地报告为 NOTICE,并且该函数的返回值设置为
ERROR
。
- 如果为 true(省略时的默认值),则在连接的远程端引发的错误也将导致本地引发错误。如果为 false,则将远程错误本地报告为 NOTICE,并且该函数的返回值设置为
Return Value
返回状态,可以是命令的状态字符串或ERROR
。
Examples
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)