PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie würde ich mit postgres_fdw eine Einfügeabfrage in eine andere Datenbank formulieren?

Sie können nicht direkt auf Tabellen in einer anderen Datenbank zugreifen, wie Sie es in MySQL tun können (eine MySQL Datenbank entspricht einem PostgreSQL Schema ).

Vielleicht können Sie also erreichen, was Sie wollen, indem Sie verschiedene Schemas in einer einzigen Datenbank verwenden.

Wenn Sie wirklich eine Tabelle in einer anderen Datenbank aktualisieren müssen, müssen Sie den Fremddaten-Wrapper postgres_fdw verwenden, um auf die Fremdtabelle zuzugreifen.

Sie müssen eine fremde Tabelle definieren – nennen wir sie foreign_employee – in der Datenbank db1 das zeigt auf eine Tabelle in db2 .

Dann könnten Sie es so machen:

INSERT INTO foreign_employee
SELECT e.*
FROM employee e
     JOIN archived a USING id
LIMIT 2;

Beachten Sie, dass das LIMIT ist hier etwas seltsam, da es keine implizite Reihenfolge in einem Abfrageergebnis gibt, es sei denn, Sie erzwingen eine mit ORDER BY .