sql >> Database teknologi >  >> RDS >> PostgreSQL

Opdatering mellem 2 databaser ved hjælp af dblink virker ikke

Tilføj tabel-/kolonnealiasser og (sandsynligvis) en WHERE-betingelse som denne:

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;

Forudsat typen text . Tilpas til din faktiske type.
Og intet komma i forbindelsesstrengen .
Jeg linker ikke a til b siden a returnerer en enkelt række her.



  1. MySQL får antallet af rækker i en innodb-tabel

  2. Hurtig måde at opdage rækkeantallet af en tabel i PostgreSQL

  3. Sådan implementeres MariaDB Cluster 10.5 for høj tilgængelighed

  4. MySQL-indeks for Grupper efter / Bestil efter