我有一个包含许多字段的本地表。我需要更新一个列的不同服务器(相同的数据库结构)上的值。我怎么能这样做?
答案 0 :(得分:1)
你试过dblink吗?
SELECT INTO AFFECTED_ROW_COUNT_STRING
DBLINK_EXEC('host=localhost port=5432 dbname=DBNAME user=USERNAME password=PASSWORD',
'UPDATE TABLE SET COLUMN = VALUE ');
答案 1 :(得分:0)
我能想到的唯一方法是在结果中返回更改的列并在两台服务器上应用更改。
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:未经测试,但应该使用较小的语法修复。