昔の俺
PostgreSQLで以下のように普通にCOPYコマンドを打つ場合、読み込むデータのヘッダは無視されない。
copy table_name from '/absolute_path/to/data.tsv';
そのため、ヘッダなしでデータを作ることになる。
しかし、ヘッダがないとパッと見て何の値か分かりにくい。カラム数が多いテーブルのテストデータを作っている時は特に。
なんとかヘッダ付きのtsvファイルを読み込ませたい。。
今の俺
いろいろ試した結果、以下のように書けばヘッダ付きのtsvを読み込むことが出来た。
copy table_name from '/absolute_path/to/data.tsv' delimiter ' ' csv header;
[追記 2014/09/08]
@s87 さんからコメントいただいた。上記は以前のバージョンでの書き方のようで、カッコを付けて記載すればマニュアル記載の構文で実行出来た。
copy table_name from '/absolute_path/to/data.tsv' ( delimiter ' ', format csv, header true );
delimiter
の文字にはタブを入力する。(ターミナルで Ctrl+v を押してからタブ押下)
csvファイルヘッダ付きで区切りはタブ文字、的な指定になっている。
正直マニュアルに載っている書き方と全然違うと思うのだが、何故出来るのか。
https://www.postgresql.jp/document/9.3/html/sql-copy.html
まあ出来てくれてありがたいことには変わりないので気にしない。
[追記 2014/09/08]
@tsugai さんからコメントいただいた。上記ページ最下部にある「互換性」の書き方には沿っていたらしい。