dblink和2个数据库之间的更新

时间:2013-12-30 01:03:34

标签: sql database postgresql sql-update

我正在使用postgresql,我需要根据第一个数据库在2ND数据库中进行更新。我还需要使用dblink

这是我需要进行更新的行:

pid  |   pname  |  pcompany  |  clocation  |  did  |   name
 1       Pirates    Argos        London        1       Mary

这是2ND数据库表1,其中必须进行更新

pid  |   pname        |  pcompany  |
 1       Ba Ba Black      Argos       

在第二个数据库中可以看到pname是Ba Ba Black。需要通过比较pid

将其更改为Pirates,如第1个数据库

所以如果db1 ta1 = 1,那么db2 tb2 = 1则db2 tb2中的Ba Ba Black变为Pirates

我正在使用此代码:

UPDATE tb2
SET name = ta1.name
WHERE pid = 1
FROM dblink('port=5432, dbname=db1 user=postgres  password=12345')
AS t1 (a character(50));

但它给了我这个错误:

ERROR:  syntax error at or near "FROM"
LINE 4: FROM dblink('port=5432, dbname=db1 user=postgres  password=1...

任何修复如何安排事情的请求?感谢

编辑:

例如,如果我将它与pid和pcompany进行比较,那就更好了 感谢

1 个答案:

答案 0 :(得分:1)

你的FROM和WHERE混在一起:

UPDATE tb2
SET name = ta1.name
FROM dblink('port=5432, dbname=db1 user=postgres  password=12345')
AS t1 (a character(50))
WHERE pid = 1;