Postgresql 中文操作指南

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(省略时默认为 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)