PostgreSQLでデータをCSVインポートを行う際、id列のデータ型にserial型の場合、シーケンスについても考慮する必要があります。
データを移行するだけたと、シーケンス番号が進まず、以下のようなエラーがでます。
Unique violation: 7 ERROR: duplicate key value violates unique constraint
idカラムにserial型を設定している場合は、データのインポート後に以下のコマンドを実行しましょう。
例えば、categoryテーブルのserial型にcategory_id
のシーケンスIDがcategory_category_id_seq
の場合は以下でOKです。
SELECT setval('category_category_id_seq',(SELECT max(category_id) FROM category));
SELECT max(category_id) FROM dtb_customer;
でレコード数を取得し、シーケンス番号をsetval()
で進めます。