Как обновить столбец в postgresql, используя два сервера? - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть локальная таблица со многими полями. Мне нужно обновить значения на другом сервере (той же структуре БД) только для одного столбца. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Вы пробовали dblink?

SELECT INTO AFFECTED_ROW_COUNT_STRING 
DBLINK_EXEC('host=localhost  port=5432 dbname=DBNAME user=USERNAME password=PASSWORD', 
'UPDATE TABLE SET COLUMN = VALUE ');
0 голосов
/ 26 апреля 2011

Единственный способ, о котором я могу думать, - это вернуть измененный столбец в результатах и ​​применить изменения на обоих серверах.

create table test123 {
    id serial primary key,
    myvalue int4
};

Предположим, у вас есть строки от 1 до 100 в обеих таблицах на обоих серверах. Этот оператор обновляет ваши строки и выдает результат в виде одной строки с операторами обновления, которые вы также можете выполнять на другом сервере.

update test123 set myvalue = rand() 
returning 'UPDATE test123 SET myvalue='||test123||' WHERE id='||id||';';

PS: не тестировался, но должен работать с незначительными исправлениями синтаксиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...