ฉันมีตารางที่สร้างขึ้นด้วยวิธีนี้:
--
-- 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")
);
ต่อมาบางแถวจะถูกแทรกโดยระบุรหัส:
INSERT INTO "jos_content" VALUES (1,36,'About',...)
ที่จุดภายหลังบางระเบียนจะถูกแทรกโดยไม่ต้อง ID
Error: duplicate key value violates unique constraint
และพวกเขาล้มเหลวกับข้อผิดพลาด:
เห็นได้ชัดว่า id ได้รับการกำหนดเป็นลำดับ:
การแทรกที่ล้มเหลวแต่ละครั้งจะเพิ่มตัวชี้ในลำดับจนกระทั่งมันเพิ่มขึ้นเป็นค่าที่ไม่มีอยู่อีกต่อไปและการสืบค้นสำเร็จ
SELECT nextval('jos_content_id_seq'::regclass)
เกิดอะไรขึ้นกับคำจำกัดความของตาราง? วิธีที่ชาญฉลาดในการแก้ไขปัญหานี้คืออะไร