Re: sequence id

Started by Neil Conwayover 23 years ago2 messagesgeneral
Jump to latest
#1Neil Conway
neilc@samurai.com

On Wed, Jul 17, 2002 at 01:14:10PM +0300, stefan@extum.com wrote:

my id which is a SERIAL will be incremented ok. But lets say I make
mistakes and want to delete from www_server everything. The next id
available will be which one was left previously. So If I run the INSERT
once I get 1 for my 'id'. If I delete and re-run my INSERT my 'id' is 2.

Do I need to do a VACUUM or how to restart from 1 ? I tried VACUUM; but
nothing worked. What worked was to DROP SEQUENCE and then the TABLE.

You can use setval() to reset the sequence. In general, sequences are
not intended to be anything more than unique, sequential numeric
identifiers -- assuming that there are no "holes" in the sequence or
that the generated numbers have any meaning in themselves is usually a
faulty assumption.

On the other hand is somehow reservated under PostgreSQL the name 'ID' for
column ?
If I create a table with ID works fine but selects are not working. If I
have 'id' for the column I can do SELECTs.

You'll need to enclose it in double-quotes.

Cheers,

Neil

--
Neil Conway <neilconway@rogers.com>
PGP Key ID: DB3C29FC

#2Noname
stefan@extum.com
In reply to: Neil Conway (#1)

Thanks for comment. I am reading about setval() now.

Stefan

On Tue, 16 Jul 2002, Neil Conway wrote:

Show quoted text

On Wed, Jul 17, 2002 at 01:14:10PM +0300, stefan@extum.com wrote:

my id which is a SERIAL will be incremented ok. But lets say I make
mistakes and want to delete from www_server everything. The next id
available will be which one was left previously. So If I run the INSERT
once I get 1 for my 'id'. If I delete and re-run my INSERT my 'id' is 2.

Do I need to do a VACUUM or how to restart from 1 ? I tried VACUUM; but
nothing worked. What worked was to DROP SEQUENCE and then the TABLE.

You can use setval() to reset the sequence. In general, sequences are
not intended to be anything more than unique, sequential numeric
identifiers -- assuming that there are no "holes" in the sequence or
that the generated numbers have any meaning in themselves is usually a
faulty assumption.

On the other hand is somehow reservated under PostgreSQL the name 'ID' for
column ?
If I create a table with ID works fine but selects are not working. If I
have 'id' for the column I can do SELECTs.

You'll need to enclose it in double-quotes.

Cheers,

Neil