Re: Insert failure on serial

Lists: pgsql-bugs
From: "Warren Seltzer" <warrens(at)actcom(dot)net(dot)il>
To: <pgsql-bugs(at)postgresql(dot)org>
Subject: Insert failure on serial
Date: 2006-05-03 14:18:01
Message-ID: 002301c66ebc$67b26790$23cd19ac@Whatever
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

PostgreSQL 8.1.3 on i686-pc-mingw32
Windows XP SP2

Summary of Insert failure (There IS NO DUPLICATE KEY):
depot_development=# INSERT INTO line_items ("order_id", "product_id", "quantity",
"unit_price") VALUES(1, 2, 2, 989.99);
ERROR: duplicate key violates unique constraint "line_items_pkey"

See attached file for more info. Bugreport.txt is psql narrative. Dumpdd.sql is the dump
of entire (tiny) database, without the offending insert.

Thanks in Advance

Warren Seltzer

Attachment Content-Type Size
bugreport.txt text/plain 2.4 KB
dumpdd.sql text/plain 7.2 KB

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Warren Seltzer <warrens(at)actcom(dot)net(dot)il>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Insert failure on serial
Date: 2006-05-05 15:07:47
Message-ID: 20060505150747.GB10554@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Warren Seltzer wrote:
> PostgreSQL 8.1.3 on i686-pc-mingw32
> Windows XP SP2
>
> Summary of Insert failure (There IS NO DUPLICATE KEY):
> depot_development=# INSERT INTO line_items ("order_id", "product_id", "quantity",
> "unit_price") VALUES(1, 2, 2, 989.99);
> ERROR: duplicate key violates unique constraint "line_items_pkey"

The problem is that the sequence attached to the "id" column is lower
than the values actually present in the column. Try doing
SELECT setval(pg_get_serial_sequence('line_items', 'id'), 16);

and see if it fixes your problem.

Now, how did the sequence got out of sync? Did you insert values to the
id column by hand?

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.