Frage

Ich versuche, eine PostgreSQL-Tabelle mit Überschriften in einem CSV-Datei über die Befehlszeile zu exportieren, aber ich es in einem CSV-Datei zu exportieren, aber ohne Überschriften.

Mein Code sieht wie folgt aus:

COPY products_273 to '/tmp/products_199.csv' delimiters',';
War es hilfreich?

Lösung

COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);

, wie in der rel="noreferrer">.

Andere Tipps

Von psql Befehlszeilen:

\COPY my_table TO 'filename' CSV HEADER

kein Semikolon am Ende.

anstatt nur Tabellennamen, können Sie auch eine Abfrage schreiben nur für ausgewählte Spaltendaten zu bekommen.

COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER;

mit Admin-Privileg

\COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER;

Wenn ich habe nicht die Erlaubnis, eine Datei aus Postgres zu schreiben finde ich, dass ich die Abfrage von der Kommandozeile ausgeführt werden kann.

psql -U user -d db_name -c "Copy (Select * From foo_table LIMIT 10) To STDOUT With CSV HEADER DELIMITER ',';" > foo_data.csv

Das funktioniert

psql dbname -F , --no-align -c "SELECT * FROM TABLE"

Für die Version 9.5 ich würde es so aussehen:

COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);

Diese Lösung funktionierte für mich mit \copy.

psql -h <host> -U <user> -d <dbname> -c "\copy <table_name> FROM '<path to csvfile/file.csv>' with (format csv,header true, delimiter ',');"

Heres, wie ich es Power-Shell PGsl connnect zu einer Heroku PG Datenbank arbeiten:

Ich musste zuerst die Kodierung des Clients ändern wie diese auf UTF8: \encoding UTF8

abgeladen dann die Daten in eine CSV-Datei folgendermaßen aus:

\copy (SELECT * FROM my_table) TO  C://wamp64/www/spider/chebi2/dump.csv CSV DELIMITER '~'

Ich habe ~ als Trennzeichen, weil ich CSV-Dateien nicht mögen, ich in der Regel TSV-Dateien, aber es wird mich nicht ‚\ t‘ als Trennzeichen lassen hinzufügen, so habe ich ~ weil es ein selten verwendet characeter.

Kopie (AnySQL Abfrage datawanttoexport) auf 'fileablsoutepathwihname' Begrenzer '' csv-Header;

Mit diesem u kann auch Daten exportieren.

Ich veröffentliche diese Antwort, weil keine der anderen hier gegebenen Antworten wirklich für mich gearbeitet. Ich konnte nicht COPY aus Postgres verwenden, weil ich nicht die richtigen Berechtigungen hat. Also wählte ich „Export Startreihe“ und speicherte die Ausgabe als UTF-8.

Die psql Version von @ Brian gegeben auch für mich nicht funktioniert hat, aus einem anderen Grund. Der Grund, warum es nicht funktioniert hat, ist, dass anscheinend die Windows-Eingabeaufforderung (I wurde unter Verwendung von Windows) wurde mit der Codierung auf eigener Einmischung herum. Ich hielt diesen Fehler:

  

ERROR: Zeichen mit Bytefolge 0x81 in encoding "WIN1252" hat keine Entsprechung in encoding "UTF8"

Die Lösung, die ich am Ende mit war eine kurze JDBC-Skript (Java), die die CSV-Datei und begeben werden, einfügen Anweisungen in meiner Postgres-Tabelle direkt lesen zu schreiben. Das funktionierte, aber die Eingabeaufforderung auch gearbeitet hätte, wenn es nicht die Codierung worden zu verändern.

scroll top