COPY table_name FROM STDIN を使用してデータをインポートしています。これは非常に効率的ですが、重複キーの違反があると、手順全体が停止します。とにかくこの周りにはありますか?
postgresql が警告を出して残りのデータをコピーしないのはなぜですか?
例は次のとおりです。
select * from "Demo1";
Id | Name | Age
---+-------+-----
1 | abc | 20
2 | def | 22
COPY "Demo1" from STDIN;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 3 pqr 25
>> 4 xyz 26
>> 5 abc 21
>> \.
ERROR: duplicate key value violates unique constraint "Demo1_Name_key"
DETAIL: Key ("Name")=(abc) already exists.
CONTEXT: COPY Demo1, line 3
ここで「名前」フィールドには一意の制約があります。文字列「abc」はすでにテーブルに存在するためです。そのプロセス全体を無視します。