Verwenden des Befehls \copy zum Importieren von Daten in eine Tabelle auf einer PostgreSQL-DB-Instance - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden des Befehls \copy zum Importieren von Daten in eine Tabelle auf einer PostgreSQL-DB-Instance

Der PostgreSQL-Befehl \copy ist ein Meta-Befehl, der im interaktiven psql-Client-Tool verfügbar ist. Sie können \copy verwenden, um Daten in eine Tabelle auf Ihrer DB-Instance von RDS für PostgreSQL zu importieren. Um den \copy-Befehl zu verwenden, müssen Sie zuerst die Tabellenstruktur auf der Ziel-DB-Instance erstellen, damit \copy ein Ziel für die zu kopierenden Daten hat.

Sie können \copy verwenden, um Daten aus einer CSV-Datei (durch Kommas getrennte Werte) zu laden, z. B. aus einer Datei, die exportiert und auf Ihrer Client-Workstation gespeichert wurde.

Um die CSV-Daten in die Ziel-DB-Instance von RDS für PostgreSQL zu importieren, stellen Sie zuerst über eine Verbindung mit der Ziel-DB-Instance her psql.

psql --host=db-instance.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=target-db

Führen Sie dann den \copy-Befehl mit den folgenden Parametern aus, um das Ziel für die Daten und ihr Format zu identifizieren.

  • target_table – Der Name der Tabelle, die die Daten erhalten soll, die aus der CSV-Datei kopiert werden.

  • column_list – Spaltenspezifikationen für die Tabelle.

  • 'filename' – Der vollständige Pfad zur CSV-Datei auf Ihrer lokalen Workstation.

\copy target_table from '/path/to/local/filename.csv' WITH DELIMITER ',' CSV;

Wenn die CSV-Datei Spaltenüberschriften-Informationen enthält, können Sie diese Version des Befehls und der Parameter verwenden.

\copy target_table (column-1, column-2, column-3, ...) from '/path/to/local/filename.csv' WITH DELIMITER ',' CSV HEADER;

Wenn der \copy-Befehl fehlschlägt, gibt PostgreSQL Fehlermeldungen aus.

Erstellen Sie eine neue DB-Instance in der Datenbank-Vorschauumgebung mit dem Befehl psql und dem Metabefehl \copy, wie in den folgenden Beispielen gezeigt. In diesem Beispiel wird source-table als Name für die Quelltabelle verwendet, source-table.csv für die CSV-Datei und target-db für die Zieldatenbank:

Für Linux, macOS oder Unix:

$psql target-db \ -U <admin user> \ -p <port> \ -h <DB instance name> \ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"

Für Windows:

$psql target-db ^ -U <admin user> ^ -p <port> ^ -h <DB instance name> ^ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"

Alle Details zum \copy-Befehl finden Sie auf der psql-Seite in der PostgreSQL-Dokumentation, im Bereich Metabefehle.