PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

La mise à jour entre 2 bases de données à l'aide de dblink ne fonctionne pas

Ajoutez des alias de table/colonne et (très probablement) une condition WHERE comme celle-ci :

UPDATE tb1 b
SET    name = a.pname   -- maybe you want to update *pname* instead?
FROM  (
   SELECT *
   FROM   dblink('port=5432 dbname=db1 user=postgres  password=12345'
               , 'SELECT pname FROM ta1 WHERE pid = 1')
          AS t(pname text)
   ) a
WHERE b.pid = 1;

En supposant que le type text . Adaptez-vous à votre type actuel.
Et pas de virgule dans la chaîne de connexion .
Je ne lie pas a à b depuis a renvoie ici une seule ligne.