Wie fügt man in PostgreSQL Daten mit dem Befehl COPY ein?

9

Ich habe Probleme, wenn ich 1 Projekt NodeJs mit PostgreSQL-Datenbank laufen lasse. Ich habe einen Fehler beim Versuch, Daten mit dem Befehl COPY in pgAdmin einzufügen.

%Vor%

Diese Daten in gist :

Dieser Fehler:

%Vor%

    
Erwin Brandstetter 28.08.2015, 12:43
quelle

2 Antworten

12
%Vor%

wird von pgAdmin nicht unterstützt.
Sie erhalten einen einfachen Syntaxfehler, da Postgres die Daten als SQL-Code erhält.

Drei mögliche Lösungen:

1. Verwenden Sie stattdessen eine mehrzeilige INSERT :

%Vor%

Beachten Sie die unterschiedliche (SQL-) Syntax für Werte als Zeichenfolgen- oder numerische Literale.

Sie können die Daten mit pg_dump mit --inserts generieren. Verwandt:

2. Oder rufen Sie Ihr Skript in der Befehlszeile mit psql auf. Als Systembenutzer postgres :

%Vor%

Stellen Sie sicher, dass für das Standardformat \. ein Datenende-Marker ( text ) vorhanden ist. (Sie haben das.) Die Dokumentation:

  

Das Ende der Daten kann durch eine einzige Zeile dargestellt werden, die nur enthält   Backslash-Periode ( \. ). Ein Ende der Datenmarkierung ist nicht erforderlich, wenn   Aus einer Datei lesen, da das Dateiende sehr gut funktioniert; es   wird nur benötigt, wenn Daten mit oder von Clientanwendungen kopiert werden   Pre-3.0-Client-Protokoll.

3. Oder verschieben Sie Ihre Daten in eine separate Datei ( lokal auf dem Server! ), sagen Sie "bier_data.csv" und verwenden Sie sie COPY .. FROM 'filename' in Ihrem Skript:

%Vor%

Was in beiden Richtungen funktioniert.

    
Erwin Brandstetter 28.08.2015, 20:22
quelle
1

Erster Schritt:

erstellt Datenbank belgianbeers auf pgAdmin.

Zweiter Schritt: Öffnen Sie die Eingabeaufforderung und führen Sie diese Befehlszeile aus:

psql -U postgres -d belgianbeers -a -f biers.sql

Diese Befehlszeile führt e Update-Datenbanktabellen aus.

-U = Benutzername postgres

    
CGLSOFT 24.12.2016 20:17
quelle