PostgreSQL kopieren/übertragen von Daten von einer Datenbank in eine andere
Brauche ich zum kopieren von Daten von einer Tabelle zu einer anderen. die beiden Tabellen haben fast die gleiche Struktur, sind aber in verschiedenen Datenbanken.
versuchte ich
INSERT INTO db1.public.table2(
id,
name,
adress,
lat,
lng
)
SELECT
id,
name,
adress,
lat
lng
FROM db2.public.table2;
wenn ich versuche, bekomme ich Fehler von cross-Datenbank ... nicht umgesetzt
Arbeiten mit Daten in mehreren Datenbanken ist eine der (wenigen) Dinge, die schwieriger ist, in Postgres als in den meisten anderen Datenbanken. Ein Ort, um zu starten ist das Verständnis von Fremddaten-Wrapper: postgresql.org/docs/current/static/postgres-fdw.html.
InformationsquelleAutor fabvys | 2016-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine wirklich einfache Aufgabe. Verwenden Sie einfach dblink für diesen Zweck:
Wenn Sie brauchen, um abrufen von Daten aus externen Datenbank auf einer regelmäßigen basis, es wäre klug, definieren Sie einen server-und user-mapping. Dann könnten Sie kürzere Aussage:
Wenn es
where
Klausel inSELECT a, b, c FROM t
, wie die Flucht einfachen Anführungszeichen?InformationsquelleAutor voytech
Es gibt auch einen anderen Weg, es zu tun. Wenn dblink-Erweiterung ist nicht verfügbar, es möglich ist, kopieren Sie die Daten direkt in die Kommandozeile, mit Rohr-Anschluss standard-Eingabe und Ausgabe:
Aber das ist gonna Arbeit nur in postgres 9.4 oder höher
InformationsquelleAutor voytech
Wenn Sie auf postgresql 9.0 oder später (und wahrscheinlich 8.0 oder später) in einer psql-Sitzung können Sie auch verwenden:
Den new_database wird ein Klon von original_database einschließlich Tabellen, Tabelle, schema, Codierungen und Daten.
Aus den docs:
Ich würde empfehlen, dass Sie überprüfen, dass der Klon ist in der Tat richtig und vernünftig wählt aus den neuen und alten db-Tabellen. Die Dokumente auch sagen:
InformationsquelleAutor dpneumo