#postgresql
Имеется две базы postgresql, например dbA и dbB. Необходимо сделать insert-запрос из dbA в dbB. Обычно это делается с помощью dblink вида -- На dbB insert into ... select from dblink('коннект к dbA','select запрос') Второй вариант, "одно в другом" -- На dbA dblink_exec('коннект к dbB', 'insert into ... select from dblink('коннект к dbA','select запрос')')' Но есть проблемка: Доступ от dbB к dbA запрещён на уровне сети, а наоборот разрешен. Есть ещё способы это провернуть в одностороннем порядке?
Ответы
Ответ 1
Второй вариант не заработает, так как вложенный dblink выполняется на удаленном сервере, а в вашем случае доступа от dbB к dbA нет. Массовый insert сделать не получится. В вашем случае нужно в базе bdB пройти курсором по всем записям вашего select и по значениям каждой строки строить insert и выполнять через execute. То есть должна формироваться строка вида: dblink('коннект к dbB','insert into tmp (a,b) values (значение a, значение b)')
Комментариев нет:
Отправить комментарий