スーパーユーザーではなく、copy
コマンドを使用できない場合、Postgresの.csv
にテーブルをエクスポートするにはどうすればよいですか?
右クリックの「インポート」ボタンでデータをpostgresにインポートできますが、エクスポートオプションはありません。
Psqlを使用してストリームをファイルにリダイレクトします。
psql -U <USER> -d <DB_NAME> -c "COPY <YOUR_TABLE> TO stdout DELIMITER ',' CSV HEADER;" > file.csv
COPY your_table TO '/path/to/your/file.csv' DELIMITER ',' CSV HEADER;
詳細はこちら manual
Marvinorezの提案に加えて 彼の答えpsql
から実行できます:
\copy your_table TO '/path/to/your/file.csv' DELIMITER ',' CSV HEADER
一方、pgadmin3
からは、テーブルの名前を右クリックして[データの表示]を選択してテーブルを開くこともできます。次に、テーブルの左上隅(列名の行と行番号の列、灰色の空の四角)をクリックして、すべての行を選択できます。最後に、あなたは CtrlC またはメニューの編集->コピー。データは、セミコロン;
で区切られたcsv形式でクリップボードにコピーされます。次に、それをLibreOffice Calc、MS Excelに貼り付けて、たとえば表示できます。
テーブルが大きい場合(何が大きいかは、RAMなど)に依存します)クリップボードに収まらない可能性があるため、その場合は使用しませんメソッドですが、最初のメソッド(\ copy)です。
スーパーユーザーとpsqlの実行で問題が発生しました。PGAdminIIIを使用して、単純な愚かな方法を採用しました。
1)SELECT * FROM;
メニューバーでクエリの選択を実行する前に、[ファイルにクエリ]を選択します。これにより、選択したフォルダにクエリが保存されます。エクスポート方法の設定をいじる必要があるかもしれません。引用や;が好きです。
2)SELECT * FROM;
通常どおり実行し、[ファイル]メニューの[エクスポート]を選択して出力を保存します。これは.csvとして保存されます
これは大きなテーブルには適したアプローチではありません。私がこれを行ったテーブルは、数100,000行と10〜30列です。大きなテーブルには問題がある可能性があります。
最も簡単な方法は、確かに私が考える標準出力へのコピーです。これができない場合は、pg_dumpを使用してから、sed、AWK、またはテキストエディターで出力ファイルを変換してみませんか?これは、許容可能な時間内に検索と置換を行っても機能するはずです:)