• ベストアンサー

CSVファイルのロードについて教えてください。

CSVファイルのロードについて教えてください。 過去データをロードしたいのですが、 ロード先のテーブルには一部重複したデータが既に存在していて、 重複エラーとなりロードできません。 ロードするデータ量は多く、CSVファイルから重複部分を取り除くのは大変なため、 エラーを無視して、重複していないデータのみをロードするような方法があればと思い 質問させていただきました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mimzy
  • ベストアンサー率33% (32/96)
回答No.2

そういう事でしたら、ダミーのテーブルを作ってデータをインポートした後、 再ロードしてみてはどうでしょう?

gonce
質問者

お礼

ご回答ありがとうございます。 お返事が遅くなり大変申し訳ありません。 ダミーテーブルを作って重複データを除いてから インポートしました。 ありがとうございました。

その他の回答 (1)

  • mimzy
  • ベストアンサー率33% (32/96)
回答No.1

postgresのversionは? 私のは8.3.8ですが重複行もインポートされます。 cnax=# select * from rtest; name ------ boo boo (2 rows) cnax=# copy rtest to '/tmp/rtest.xt'; COPY 2 cnax=# copy rtest from '/tmp/rtest.xt'; COPY 2 cnax=# select * from rtest; name ------ boo boo boo boo (4 rows)

gonce
質問者

補足

ご回答ありがとうございます。 versionは8.1.4です。 すいません、説明が不十分でした。 インポート先のテーブルの主キーが重複するため、 一意制約エラーでインポートに失敗します。 CSVファイルのうち、エラーが発生した行はスキップして、 エラーが発生しない行のみインポートするような方法があればと思い、 質問させていただきました。 やはり、CSVファイルからエラーとなる行を取り除いてから インポートするしかないでしょうか。 よろしくお願いいたします。

関連するQ&A