dblink_exec
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, удалённая ошибка выдаётся локально как ЗАМЕЧАНИЕ, и возвращаемым значением функции будет
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)