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"}')
  • fail_on_error

    • 如果为 true(省略时的默认值),则在连接的远程端引发的错误也将导致本地引发错误。如果为 false,则将远程错误本地报告为 NOTICE,并且该函数的返回值设置为ERROR

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)