この方法で作成されたテーブルがあります:
--
-- 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")
);
その後、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)
テーブル定義の何が問題になっていますか?これを修正するスマートな方法は何ですか?