dblink_exec — 在远程数据库中执行命令
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
,并且仅在此命令持续时间内建立指示的连接。
connname
要使用的连接的名称;省略此参数以使用未命名的连接。
connstr
连接信息字符串,如先前针对 dblink_connect
所述。
sql
您希望在远程数据库中执行的 SQL 命令,例如 insert into foo values(0, 'a', '{"a0","b0","c0"}')
。
fail_on_error
如果为 true(省略时为默认值),则在远程端引发错误会导致在本地端也引发错误。如果为 false,则远程错误将在本地报告为 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)
如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步澄清,请使用 此表单 报告文档问题。