PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Aktualizacja między 2 bazami danych przy użyciu dblink nie działa

Dodaj aliasy tabeli/kolumny i (najprawdopodobniej) warunek WHERE:

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;

Zakładając typ text . Dostosuj się do swojego rzeczywistego typu.
I bez przecinka w ciągu połączenia .
Nie łączę a z b od a zwraca tutaj pojedynczy wiersz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wielowartościowe upserts PostgreSQL

  2. Postgres nie rozpoznaje tabeli temp w funkcji

  3. Błąd podczas uruchamiania polecenia psql w /docker-entrypoint-initdb.d/db_init.sh (psql:nie można połączyć się z serwerem:połączenie odrzucone)

  4. Jak podzielić String i wstawić go jako nową linię w tej samej tabeli?

  5. Wydajność nie wzrasta, nawet zwiększa się rozmiar work_mem