我正在使用 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”已经存在于表中。它忽略了整个过程。