COPYでCSVデータをテーブルへINSERTする

ファイルから

COPY user (name,age,tel) FROM '/tmp/user.csv' DELIMITER AS ','

標準入力から

COPY category FROM stdin DELIMITERS ',';
(↓コピペする) 
1,建設業
2,製造業
3,情報通信業
\.

http://www.postgresql.jp/document/pg837doc/html/sql-copy.html

seirial型のカラムがある場合

COPYコマンドを使った後、そのテーブルにserial型のカラムがある場合、シーケンスが狂う。 例えば、プライマリキーcategory_idがserial型で、category_idを明示せずにINSERT文を実行するとエラーになる。

INSERT INTO category (category_name) values ( 'サービス業');
ERROR:  duplicate key violates unique constraint "category_pkey"

この場合、下のようにシーケンスを操作する。

SELECT setval('category_category_id_seq',(SELECT max(category_id) FROM category))

http://www.postgresql.jp/document/pg837doc/html/functions-sequence.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-06-11 (土) 16:50:56 (3049d)