web-dev-qa-db-ja.com

PostgreSQLテーブルを見出し付きのCSVファイルにエクスポート

私はPostgreSQLのテーブルを見出し付きのCSVファイルにエクスポートしようとしていますが、見出しなしでCSVファイルにエクスポートすることができます。これらの見出しも必要です。私のコードは次のようになります

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

マニュアル で説明されているように。

554
Milen A. Radev

Psqlコマンドラインから:

\COPY my_table TO 'filename' CSV HEADER

末尾にセミコロンはありません。

198

テーブル名だけでなく、選択した列データのみを取得するためのクエリを作成することもできます。

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

管理者権限を持つ

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

Postgresからファイルを書き出す許可がない場合、コマンドラインからクエリを実行できることがわかりました。

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

この作品

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

私が使っているバージョン9.5の場合、それは次のようになります。

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

この解決法は\copyを使って私のために働きました。

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

Heroku PGデータベースに接続したpgslを使用して、Shellがどのように機能するかを説明します。

私は最初にこのようにクライアントエンコーディングをutf8に変更しなければなりませんでした:\encoding UTF8

それからデータをCSVファイルにダンプします。

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

CSVファイルが気に入らないので〜を区切り文字として使用しましたが、通常TSVファイルを使用しますが、区切り文字として '\ t'を追加することはできません。そのため、を使用することはほとんどありません。キャラクター。

3

ここに記載されている他の回答はどれも実際に機能しなかったため、この回答を掲載しています。正しい権限を持っていなかったため、Postgres内からCOPYを使用できませんでした。そこで、「グリッド行のエクスポート」を選択し、出力をUTF-8として保存しました。

@Brianが提供したpsqlバージョンも、別の理由で機能しませんでした。動作しなかった理由は、明らかにWindowsコマンドプロンプト(私はWindowsを使用していた)が、エンコード自体をいじっていたためです。私はこのエラーを続けました:

エラー:エンコード「WIN1252」のバイトシーケンス0x81の文字には、エンコード「UTF8」に相当するものがありません

最終的に使用した解決策は、CSVファイルを読み取り、Postgresテーブルに挿入ステートメントを直接発行する短いJDBCスクリプト(Java)を作成することでした。これは機能しましたが、エンコードを変更していなければコマンドプロンプトも機能していました。

0
Tim Biegeleisen

(anysql query datawanttoexport)を 'fileablsoutepathwihname' delimiter '、' csv headerにコピーします。

これを使うとデータをエクスポートすることもできます。

0
user3767321