Ich versuche, eine ganze Tabelle von einer Datenbank in eine andere in Postgres zu kopieren. Irgendwelche Vorschläge?
Antworten
Zu viele Anzeigen?Extrahieren Sie die Tabelle und leiten Sie sie direkt an die Zieldatenbank weiter:
pg_dump -t table_to_copy source_db | psql target_db
注意してください。 Wenn in der anderen Datenbank die Tabelle bereits eingerichtet ist, sollten Sie die -a
um nur Daten zu importieren, da sonst seltsame Fehlermeldungen wie "Kein Speicherplatz vorhanden" auftreten können:
pg_dump -a -t table_to_copy source_db | psql target_db
Sie können auch die Backup-Funktion in pgAdmin II verwenden. Folgen Sie einfach diesen Schritten:
- Klicken Sie in pgAdmin mit der rechten Maustaste auf die Tabelle, die Sie verschieben möchten, und wählen Sie "Backup".
- Wählen Sie das Verzeichnis für die Ausgabedatei und setzen Sie Format auf "plain".
- Klicken Sie auf die Registerkarte "Dump Options #1", markieren Sie "Only data" oder "only Schema" (je nachdem, was Sie tun)
- Klicken Sie im Abschnitt "Abfragen" auf "Spalteneinfügungen verwenden" und "Benutzereinfügungsbefehle".
- Klicken Sie auf die Schaltfläche "Backup". Die Ausgabe erfolgt in einer .backup-Datei
- Öffnen Sie diese neue Datei mit Notepad. Dort sehen Sie die Einfügeskripte, die für die Tabelle/Daten benötigt werden. Kopieren Sie diese und fügen Sie sie in die neue Datenbank-SQL-Seite in pgAdmin ein. Als pgScript ausführen - Abfrage->Ausführen als pgScript F6
Funktioniert gut und kann mehrere Tabellen auf einmal bearbeiten.
Mit psql, auf einem Linux-Host, der mit beiden Servern verbunden ist
( export PGPASSWORD=password1
psql -U user1 -h host1 database1 \
-c "copy (select field1,field2 from table1) to stdout with csv" ) \
|
( export PGPASSWORD=password2
psql -U user2 -h host2 database2 \
-c "copy table2 (field1, field2) from stdin csv" )
Erste dblink installieren
Dann würden Sie etwa so vorgehen:
INSERT INTO t2 select * from
dblink('host=1.2.3.4
user=*****
password=******
dbname=D1', 'select * t1') tt(
id int,
col_1 character varying,
col_2 character varying,
col_3 int,
col_4 varchar
);
- See previous answers
- Weitere Antworten anzeigen