356

psql を使用\dtしてデータベース内のすべてのテーブルを一覧表示していますが、結果を保存する必要があります。

psql コマンドの結果をファイルにエクスポートする構文は何ですか?

4

10 に答える 10

111

psql\oコマンドは jhwist によって既に説明されています。

別のアプローチは、COPY TOコマンドを使用してサーバー上のファイルに直接書き込むことです。これには、psql の表形式ではなく、選択した解析しやすい形式でダンプされるという利点があります。を使用して別のテーブル/データベースにインポートすることも非常に簡単COPY FROMです。

注意!これにはスーパーユーザー権限が必要で、サーバー上のファイルに書き込みます。

例:COPY (SELECT foo, bar FROM baz) TO '/tmp/query.csv' (format csv, delimiter ';')

「;」で CSV ファイルを作成します。フィールド区切りとして。

いつものように、詳細についてはドキュメントを参照してください

于 2011-03-16T21:49:35.897 に答える
32

\copyこれはpostgresコマンドで、どのユーザーにも機能します。\dt で動作するかどうかはわかりませんが、一般的な構文は次のリンクから再現されますPostgres SQL copy syntax

\copy (select * from tempTable limit 100) to 'filenameinquotes' with header delimiter as ','

上記は、選択クエリの出力をcsvファイルとして提供されたファイル名に保存します

編集:

私のpsqlサーバーでは、次のコマンドが機能しますこれは古いバージョンv8.5です

copy (select * from table1) to 'full_path_filename' csv header;
于 2016-07-08T21:36:45.153 に答える
4
COPY tablename TO '/tmp/output.csv' DELIMITER ',' CSV HEADER;

このコマンドは、テーブル全体をcsvとして保存するために使用されます

于 2017-10-12T07:40:13.983 に答える
1

これにはいくつかの内部 psql コマンドが存在すると思いますが、 util-linux-ngパッケージscriptからコマンドを実行することもできます。

説明 Script は、端末に出力されるすべてのタイプスクリプトを作成します。

于 2011-03-16T20:55:25.083 に答える