psql を使用\dt
してデータベース内のすべてのテーブルを一覧表示していますが、結果を保存する必要があります。
psql コマンドの結果をファイルにエクスポートする構文は何ですか?
psql を使用\dt
してデータベース内のすべてのテーブルを一覧表示していますが、結果を保存する必要があります。
psql コマンドの結果をファイルにエクスポートする構文は何ですか?
psql\o
コマンドは jhwist によって既に説明されています。
別のアプローチは、COPY TO
コマンドを使用してサーバー上のファイルに直接書き込むことです。これには、psql の表形式ではなく、選択した解析しやすい形式でダンプされるという利点があります。を使用して別のテーブル/データベースにインポートすることも非常に簡単COPY FROM
です。
注意!これにはスーパーユーザー権限が必要で、サーバー上のファイルに書き込みます。
例:COPY (SELECT foo, bar FROM baz) TO '/tmp/query.csv' (format csv, delimiter ';')
「;」で CSV ファイルを作成します。フィールド区切りとして。
いつものように、詳細についてはドキュメントを参照してください
\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;
COPY tablename TO '/tmp/output.csv' DELIMITER ',' CSV HEADER;
このコマンドは、テーブル全体をcsvとして保存するために使用されます
これにはいくつかの内部 psql コマンドが存在すると思いますが、 util-linux-ngパッケージscript
からコマンドを実行することもできます。
説明 Script は、端末に出力されるすべてのタイプスクリプトを作成します。