Обсуждение: Where is the sequence value?

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

Where is the sequence value?

От
"Edipo E. F. Melo"
Дата:
Hi all,

   In my system, I use a sequence to enumerate a proccess list, and this sequence must be reseted each
year. I don't remember how it was created, but when I try to "setval('seq', 0)" I get a "out of bounds
(1, ...) error.

   So, I set i to 1 ("setval('seq', 1)"), but in my system, when I try to insert a process, the nextval
() returns 2, not 1.

   I was thinking to fix this dropping, e creating the sequence, but in my system, a lot o users have
permission to update the sequence (to use a nextval() on it), and I couldn't revoke they rights when I
drop it.

   Insted, I search the docs about where sequence is definited, its min, max and current value, to
change the min value, setting it to 0, but I didn't found something.

   (After a lot of text), my question is: how can I change the min value of a sequence without dropping
it?

   Thanks for all,



    []'s

    Edipo Elder F. de Melo
    [edipoelder@ig.com.br]
    [    ICQ#: 4546070   ]


Re: Where is the sequence value?

От
Tom Lane
Дата:
"Edipo E. F. Melo" <edipoelder@ig.com.br> writes:
>    So, I set i to 1 ("setval('seq', 1)"), but in my system, when I try to insert a process, the nextval
> () returns 2, not 1.

You need to clear the is_called flag too.  See the three-parameter form
of setval():
http://www.ca.postgresql.org/users-lounge/docs/7.3/postgres/functions-sequence.html

            regards, tom lane