Tôi có một bảng được tạo theo cách này:
--
-- Table: #__content
--
CREATE TABLE "jos_content" (
"id" serial NOT NULL,
"asset_id" bigint DEFAULT 0 NOT NULL,
...
"xreference" varchar(50) DEFAULT '' NOT NULL,
PRIMARY KEY ("id")
);
Sau đó, một số hàng được chèn chỉ định id:
INSERT INTO "jos_content" VALUES (1,36,'About',...)
Tại một thời điểm sau, một số bản ghi được chèn mà không có id và chúng không thành công với lỗi :
Error: duplicate key value violates unique constraint
.
Rõ ràng id đã được định nghĩa là một chuỗi:
Mỗi lần chèn không thành công sẽ tăng con trỏ trong chuỗi cho đến khi nó tăng lên một giá trị không còn tồn tại và các truy vấn thành công.
SELECT nextval('jos_content_id_seq'::regclass)
Điều gì là sai với định nghĩa bảng? Cách thông minh để khắc phục điều này là gì?