Bạn hỏi:
Có, bạn nên như ghi lại ở đây :
Bạn viết:
Nhưng đó không phải là như vậy! :) Khi bạn thực hiện CHÈN thông thường, thông thường bạn không chỉ định giá trị rõ ràng cho khóa chính được hỗ trợ bởi SEQUENCE. Nếu bạn đã làm vậy, bạn sẽ gặp phải những vấn đề giống như bạn đang gặp phải bây giờ:
postgres=> create table uh_oh (id serial not null primary key, data char(1));
NOTICE: CREATE TABLE will create implicit sequence "uh_oh_id_seq" for serial column "uh_oh.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "uh_oh_pkey" for table "uh_oh"
CREATE TABLE
postgres=> insert into uh_oh (id, data) values (1, 'x');
INSERT 0 1
postgres=> insert into uh_oh (data) values ('a');
ERROR: duplicate key value violates unique constraint "uh_oh_pkey"
DETAIL: Key (id)=(1) already exists.
Tất nhiên, lệnh COPY của bạn đang cung cấp một id
rõ ràng giá trị, giống như ví dụ INSERT ở trên.