Thread: 7.4: serial not working ?

7.4: serial not working ?

From
vertigo
Date:
Hello
i upgraded postgresql from 7.3 to 7.4 and noticed that SERIAL
exists but does not working. Example:
My table:
create table1(
id SERIAL,
name VARCHAR(100)
);

insert into table1 (name) values('name1');
ERROR:  duplicate key violates unique constraint "table1_pkey"

Why ? I want to have autoincrementation. I do not know (when i insert
record) what id values should it have.
How can i solve this problem ?

Thanx
Michal

Re: 7.4: serial not working ?

From
Oliver Elphick
Date:
On Fri, 2004-07-02 at 11:24, vertigo wrote:
> Hello
> i upgraded postgresql from 7.3 to 7.4 and noticed that SERIAL
> exists but does not working. Example:
> My table:
> create table1(
> id SERIAL,
> name VARCHAR(100)
> );
>
> insert into table1 (name) values('name1');
> ERROR:  duplicate key violates unique constraint "table1_pkey"
>
> Why ? I want to have autoincrementation. I do not know (when i insert
> record) what id values should it have.
> How can i solve this problem ?

You already have rows in that table, and the sequence is generating a
key which already exists.  This is not MySQL!

To cure this, set the sequence to the highest value in the table and
don't insert explicit values for that column:

   SELECT setval('table1_id_seq', (SELECT MAX(id) FROM table1));

(or something like that).