Как обновить таблицу в database1 из функции в database2 в PostgreSQL? - PullRequest
0 голосов
/ 23 февраля 2010

Есть ли способ обновить таблицу в database1 с помощью функции из database2 (обе базы данных находятся на одном сервере)? В основном кросс-обновление базы данных в PostgreSQL.

Функция выполняется триггером, но это не должно иметь значения.

- = редактировать = - Я знаю, что могу сделать это с помощью DBLink, но я хотел бы изменить исходную базу данных как можно меньше. Я ищу другие варианты.

Ответы [ 3 ]

1 голос
/ 24 февраля 2010

Вы можете поместить обе базы данных в одну и ту же базу данных Postgresql, но в разные схемы.

Таким образом, они все еще логически разделены, и нет конфликта имен, но вы можете обращаться к объектам между схемами.

0 голосов
/ 24 февраля 2010

Не ясно, что вы ищете.

Вы знаете, что базы данных в PostgreSQL являются отдельными, и вы не можете напрямую обращаться друг к другу (по замыслу).

Вы знаете, что расширение dblink позволяет вам соединить две базы данных (один или другой сервер).

Вы считаете расширение dblink слишком инвазивным (я подозреваю, что идея small_duck об объединении двух баз данных исключена).

Я не уверен, что вы думаете, что будет существовать проще, чем dblink, учитывая, что dblink является выбором по умолчанию в этой области.

0 голосов
/ 23 февраля 2010

DBLink был бы стандартным способом сделать это, если бы он был доступен. В отсутствие этого, если у вас установлен процедурный язык (отличный от PL / pgsql), такой как PL / pgperl, вы можете использовать этот язык для подключения к базе данных 2 и вызова оператора обновления. Или вы можете использовать процедурный язык для вызова сценария оболочки, который вызывает psql для обновления.

...