2011-10-27 8 views
27

私は都市と郵便番号の2つの列を持つCSVファイルを持っています。 copyコマンドを使用してこのファイルをPostgreSQLテーブルにコピーし、同時に自動でid値を生成したいと考えています。PostgreSQLのコピーコマンドは主キーIDを生成します

テーブルのカラムは、id,city、およびzipcodeです。

私のCSVファイルには、cityzipcodeしかありません。

答えて

43

COPY commandは、それ自体で、すべてのテーブルがidためserial列を使用している場合があることを行う必要があります:列リストにない表内の任意の列がある場合

、FROM COPYが挿入されますそれらの列のデフォルト値。

だからあなたが言うことができる必要があります:

copy table_name(city, zipcode) from ... 

idは、いつものように生成されます。 id(または手作業で添付されたシーケンス)のserial列がない場合は、手動でシーケンスを接続し、COPYを実行してシーケンスを切り離すことができます。

+0

私はどのようにデータをCSVからPostgresにコピーしましたか?\ copy company_infos(email、url、created_at、updated_at)FROM '/Users/john/company_infos_heroku4.csv' WITH(FORMAT CSV、HEADER true); – yaru

関連する問題