On 9/6/06, Arturo Perez <aperez@xxxxxxxxxxxx> wrote:
On Sep 6, 2006, at 8:48 PM, Merlin Moncure wrote: > On 9/6/06, Arturo Perez <aperez@xxxxxxxxxxxx> wrote: >> What happens is that if I do a select nextval('seq') I get a number >> that's lower than the >> max primary key id. This is inspite of my doing >> SELECT setval('seq', ((SELECT MAX(seq_ID) FROM table)+1)) >> ALTER SEQUENCE seq RESTART WITH <max + 1>; >> select pg_catalog.setval(seq, <max+1>, true); >> > > are you running those statements to fetch the next key in the table? > you might have a race condition there. try wrappnig in a userlock. > > merlin No, not running them to get the next key. Just trying to reset the sequence so that I stop getting duplicates. A race condition is unlikely as only one person can actually add these things to the system.
If you can reproduce this, it would be of great interest to me and a lot of other people. Can you turn sql logging on the server and make it happen? We need to absolutely eliminate any application generated bugs here. merlin