\copy が用意されています。
\copy コマンドの書式は
\copy テーブル名 from ファイル名
です。この場合,ファイルの中身は,
各列がタブ文字で区切られた表形式になっている必要があります。
ファイル名として,パス名を指定することも可能です。
copy は SQL コマンドではありません
から,行末の ; が不要であることも注意しておきましょう。
4 banana 5 ichigo 6 nashiまた,次の SQL コマンドで,二つの列を有するテーブル shina が作成済みであるとします。
CREATE TABLE shina ( code varchar, shohin varchar );テーブル shina にファイル banana の中身を挿入するには,
dbnyumon=> \copy shina from /pub/db/bananaとします。 ここで
dbnyumon=> は,もちろん,データベース dbnyumon を利用して
いる際の psql コマンドが表示するプロンプトです。
結果は次のようになります。
dbnyumon=> SELECT * from shina ; code | shohin ------+-------- 4 | banana 5 | ichigo 6 | nashi (3 rows)
\copy コマンドはテーブルにファイルの内容を新たに追加します。
そのため,既にデータが入っているテーブルを新しいデータで置き換えたい場合には,
予め DELETE でデータを全て削除するか,
DROP TABLE, CREATE TABLE でテーブルを作り直しておく必要があります。
\copy を実行します。
\copy テーブル名 from ファイル名 using delimiters '区切り文字'
7|kaki 8|kuriこれをテーブル shina に入れるには
\copy shina from /pub/db/kaki using delimiters '|'
とします。
\copy コマンドを実行するときに from
の代わりに to を指定すれば,
データベースのテーブルからファイルにデータを書き出すことができます。