Thread: serial sequence problem with existing keys

serial sequence problem with existing keys

From
Randall Perry
Date:
I've had to modify a parent table by recreating it (I substituted integer
foreign key values from lookup tables for text in 2 fields. As postgres
doesn't have a DROP COLUMN command I couldn't revise the table structure
without rebuilding it) .

It has a serial data type for the primary key. I'm importing the data back
in and need to keep the original primary key values, as they're used in
several child tables.

But, if I put in my own key values in a serial field the auto-increment
sequence uses the next number from where it left off, and not the max value,
and complains that it can't create a duplicate key.

Is there any way around this, or am I going to have to programmatically
increment the key and change serial to int?


--
Randy Perry
sysTame
Mac Consulting/Sales

phn                 561.589.6449
mobile email        help@systame.com




Re: serial sequence problem with existing keys

From
Stephan Szabo
Date:
On Wed, 31 Oct 2001, Randall Perry wrote:

> I've had to modify a parent table by recreating it (I substituted integer
> foreign key values from lookup tables for text in 2 fields. As postgres
> doesn't have a DROP COLUMN command I couldn't revise the table structure
> without rebuilding it) .
>
> It has a serial data type for the primary key. I'm importing the data back
> in and need to keep the original primary key values, as they're used in
> several child tables.
>
> But, if I put in my own key values in a serial field the auto-increment
> sequence uses the next number from where it left off, and not the max value,
> and complains that it can't create a duplicate key.
>
> Is there any way around this, or am I going to have to programmatically
> increment the key and change serial to int?

Check out setval('<sequence name>', <number>) to change the sequence's
current value.



Re: serial sequence problem with existing keys

From
Randall Perry
Date:
>
> Check out setval('<sequence name>', <number>) to change the sequence's
> current value.
>
>
>
That done did it.

Thanks

--
Randy Perry
sysTame
Mac Consulting/Sales

phn                 561.589.6449
mobile email        help@systame.com