COPY tbl FROM STDIN;
wird nicht von pgAdmin unterstützt.
Sie erhalten einen einfachen Syntaxfehler, da Postgres die Daten als SQL-Code erhält.
Drei mögliche Lösungen:
1. Verwenden einer mehrreihigen INSERT
statt:
INSERT INTO beer(name, tags, alcohol, brewery, id, brewery_id, image)
VALUES
('Bons Voeux', 'blonde', 9.5, 'Brasserie Dupont', 250, 130, 'generic.png')
, ('Boerke Blond', 'blonde', 6.8, 'Brouwerij Angerik', 233, 287 'generic.png')
;
Notiere die verschiedenen (SQL) Syntax für die Werte als Zeichenfolge oder einen numerischen Literale.
Sie können die Daten mit pg_dump
using --inserts
generieren. Verwandte:
2. Oder rufen Sie das Skript auf der Kommandozeile mit psql
. Als Systembenutzer postgres
:
psql beer -f beer.sql
Seien Sie sicher, dass eine End-of-Datenmarkierung ist (\.
) für Standard text
Format. (Sie haben das.) The documentation:
End of data can be represented by a single line containing just backslash-period (\.
). An end-of-data marker is not necessary when reading from a file, since the end of file serves perfectly well; it is needed only when copying data to or from client applications using pre-3.0 client protocol.
3. Oder Ihre Daten in eine separate Datei verschieben (lokal auf dem Server!), sagen 'beer_data.csv' und verwenden COPY .. FROM 'filename'
in Ihrem Skript :
COPY beer (name, tags, alcohol, brewery, id, brewery_id, image) FROM '/path/to/beer_data.csv';
, die entweder so funktioniert.
Diese Art von Fehler hängt vom Typ des Datenbankframeworks ab, das Sie verwenden. Sie sollten solche Details in Ihre Frage aufnehmen. –
@ vitaly-t, ich war Update gif Datei Methode erstellen Sie 1 Datenbank und führen Sie die Datei biers.sql aber Fehler haben. –
Bitte helfen Sie mir. –