« Pear::Auth+MDB2でセッション認証 | メイン | CentOSのネットワークインストールとRAID1構築 »

2007年9月21日 (金)

Postgresでテーブルの一部をcsvにエクスポート・インポート

$ psql -d DBNAME -c 'select  * from TABLENAME order by KEY desc limit NUMBER;' -A -F, > result.csv

-d ・・・DBの名前

-c ・・・コマンド実行を指示

-A・・・位置揃えなしの出力モード

-F・・・フィールド区切り文字として','を使う

-h・・・ホスト名

-p・・・ポート

-U・・・ユーザー名

インポートはCOPYコマンドを使う

db=# \COPY TABLENAME from result.csv delimiters ',' null ''

*最後のセミコロンは不要。頭のバックスラッシュは一般ユーザーの時は必要

psqlコマンドではNULLを吐き出さないので、 null '' オプションを付ける

すでに指定したテーブルにデータが存在する場合は、追加になる。

psqlのそのほかのオプションの説明についてはこちら

http://www.postgresql.jp/document/pg824doc/html/app-psql.html

copy コマンドでテーブルを丸ごとcsvにエクスポートする場合は以下のようにする。この方がpsqlより速い。

db=> \copy TABLENAME to 'TABLENAME.csv' USING DELIMITERS ','

*最後のセミコロンは不要。頭のバックスラッシュは一般ユーザーの時は必要だが、スーパーユーザーの場合は不要

トラックバック

このページのトラックバックURL:
http://app.justblog.jp/t/trackback/237687/10359225

このページへのトラックバック一覧 Postgresでテーブルの一部をcsvにエクスポート・インポート:

コメント

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。

2010年3月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

My Favorite Songs

  • My foolish heart
    Bill Evans Trio: Waltz for Deby (★★★★★)