Обсуждение: Very Urgent : Sequences Problem

Поиск
Список
Период
Сортировка

Very Urgent : Sequences Problem

От
"Kranti™ K K Parisa"
Дата:
Hi,

I have defined sequence on a table something like this


CREATE SEQUENCE items_unqid_seq
  INCREMENT 1
  MINVALUE 0
  MAXVALUE 9223372036854775807
  START 7659
  CACHE 1;

this is on a table called items. where i have currently the max(unq_id) as 7659.

and in the stored procedure when i am inserting values into the items table for the unq_id column i am using the sequence as follows:

nextval('items_unqid_seq'::text)


it seems to be working some times. and the sequences are not getting updated sometime. which is casuing primary key exceptions.

please advise as soon as possible.

is there any trivial problem with sequences in postgresql??

thanks in advance.

--
Kranti
           

Re: [PERFORM] Very Urgent : Sequences Problem

От
Tino Wildenhain
Дата:
Hi,

Kranti™ K K Parisa wrote:
> Hi,
>
> I have defined sequence on a table something like this
>
>
> CREATE SEQUENCE items_unqid_seq
>   INCREMENT 1
>   MINVALUE 0
>   MAXVALUE 9223372036854775807
>   START 7659
>   CACHE 1;
>
> this is on a table called items. where i have currently the max(unq_id)
> as 7659.
>
> and in the stored procedure when i am inserting values into the items
> table for the unq_id column i am using the sequence as follows:
>
> nextval('items_unqid_seq'::text)
>
>
> it seems to be working some times. and the sequences are not getting
> updated sometime. which is casuing primary key exceptions.

Thats actually not possible. Sequences are never rolled
back. The only way would be using stale values from
your function call or some other inserts trying to
overwrite or insert into the table twice with the same
id.

> please advise as soon as possible.
>
> is there any trivial problem with sequences in postgresql??

nope.

> thanks in advance.

This is neither admin nor performance related so you better
send such questions to psql-general.

Thank you
Tino


Вложения

Re: [PERFORM] Very Urgent : Sequences Problem

От
Josh Berkus
Дата:
Kranti (tm),

If you problem is very urgent, I suggest that you get a paid support
contract with a PostgreSQL support company.  You can find a list of
support companies here:

http://www.postgresql.org/support/professional_support

These mailing lists are made up of other PostgreSQL users and
developers, none of whom are paid to help anyone with support issues.

Cross-posting two PostgreSQL mailing lists for a problem which is very
urgent to you, but not to us, is a guarenteed way not to get a useful
answer.  It suggests that you think you are more important than anyone
else in the community.

--Josh Berkus

Re: [PERFORM] Very Urgent : Sequences Problem

От
"Merlin Moncure"
Дата:
On Wed, Nov 19, 2008 at 10:54 AM, Kranti™ K K Parisa
<kranti.parisa@gmail.com> wrote:
> Hi,
>
> I have defined sequence on a table something like this
>
>
> CREATE SEQUENCE items_unqid_seq
>   INCREMENT 1
>   MINVALUE 0
>   MAXVALUE 9223372036854775807
>   START 7659
>   CACHE 1;
>
> this is on a table called items. where i have currently the max(unq_id) as
> 7659.
>
> and in the stored procedure when i am inserting values into the items table
> for the unq_id column i am using the sequence as follows:
>
> nextval('items_unqid_seq'::text)
>
>
> it seems to be working some times. and the sequences are not getting updated
> sometime. which is casuing primary key exceptions.
>
> please advise as soon as possible.
>
> is there any trivial problem with sequences in postgresql??

no (at least none that I know of).

maybe if you posted the source of your procedure?  I bet your error is
coming form some other source.

merlin

Re: [PERFORM] Very Urgent : Sequences Problem

От
tv@fuzzy.cz
Дата:
> On Wed, Nov 19, 2008 at 10:54 AM, Kranti� K K Parisa
> <kranti.parisa@gmail.com> wrote:
>> Hi,
>>
>> I have defined sequence on a table something like this
>>
>>
>> CREATE SEQUENCE items_unqid_seq
>>   INCREMENT 1
>>   MINVALUE 0
>>   MAXVALUE 9223372036854775807
>>   START 7659
>>   CACHE 1;
>>
>> this is on a table called items. where i have currently the max(unq_id)
>> as
>> 7659.
>>
>> and in the stored procedure when i am inserting values into the items
>> table
>> for the unq_id column i am using the sequence as follows:
>>
>> nextval('items_unqid_seq'::text)
>>
>>
>> it seems to be working some times. and the sequences are not getting
>> updated
>> sometime. which is casuing primary key exceptions.
>>
>> please advise as soon as possible.
>>
>> is there any trivial problem with sequences in postgresql??
>
> no (at least none that I know of).
>
> maybe if you posted the source of your procedure?  I bet your error is
> coming form some other source.

Are you sure you're using the nextval() properly whenever you insert data
into the table? This usually happens when a developer does not use it
properly, i.e. he just uses a (select max(id) + 1 from ...) something like
that. One of the more creative ways of breaking sequences was calling
nextval() only for the first insert, and then adding 1 to the ID.

BTW. do you have RULEs defined on the table? Some time ago I run into a
problem with RULEs defined on the table, as all the rules are evaluated -
I've used nextval() in all the rules so it was incremented for each rule
and it was not clear which value was actually used. So it was not sure
which value to use in a following insert (as a FK value).

regards
Tomas