Thread: duplicate sequence, it is possible?
Hi everyone.
I have a table with a PK, this table has a lot of insert per second (100 ~ 150 insert /sec)
Sometimes, a get a duplicate key error, but ID is generated from a function (VOLATILE). This function has just one line (select nextval('XXX'))
Is possible that this function return same ID for two diff call?
Postgres version is 9.0
Thanks!
On 19 Sep 2011, at 2:57, Anibal David Acosta wrote: > Hi everyone. > > I have a table with a PK, this table has a lot of insert per second (100 ~ 150 insert /sec) > Sometimes, a get a duplicate key error, but ID is generated from a function (VOLATILE). This function has just one line(select nextval('XXX')) > > Is possible that this function return same ID for two diff call? > > Postgres version is 9.0 > > Thanks! Very unlikely. Are you certain that you're not just hitting pre-existing rows that have ID's higher than the starting ID of your sequence?Or that there isn't another process inserting rows without using the sequence? Alban Hertroys -- Screwing up is an excellent way to attach something to the ceiling.
On Monday 19 September 2011 08:19:18 Alban Hertroys wrote: > On 19 Sep 2011, at 2:57, Anibal David Acosta wrote: > > Hi everyone. > > > > I have a table with a PK, this table has a lot of insert per second (100 > > ~ 150 insert /sec) Sometimes, a get a duplicate key error, but ID is > > generated from a function (VOLATILE). This function has just one line > > (select nextval('XXX')) > > > > Is possible that this function return same ID for two diff call? > > > > Postgres version is 9.0 > > > > Thanks! > > Very unlikely. > Are you certain that you're not just hitting pre-existing rows that have > ID's higher than the starting ID of your sequence? Or that there isn't > another process inserting rows without using the sequence? Also, why wrap nextval('XXX') instead of using it directly ? Unless your function does more than "select nextval('XXX')", you're just making your code harder to read and slightly slower. -- Vincent de Phily