Thread: catching up an id sequence

catching up an id sequence

From
Austin Swinney
Date:
Hi most esteemed novices and experts.  It is an honor to post here!

I imported a MySQL dump into PostgreSQL (7.4.3) and was wondering what
a good way to catch up the ID sequence table to be current with the
table I imported.

In the Perl app associated with the DB, I swapped out currval for
mysql_insertid.  Then I noticed that the currval reported is started
from 0,  but there are already 1400+ records in that table that have id
numbers.

The definition in question is:

  messageid        | integer                     | not null default
nextval('public.message_messageid_seq'::text)

Ideas?  Many thanks!

Austin


Re: catching up an id sequence

From
Tom Lane
Date:
Austin Swinney <austin@interactivate.com> writes:
> Hi most esteemed novices and experts.  It is an honor to post here!
> I imported a MySQL dump into PostgreSQL (7.4.3) and was wondering what
> a good way to catch up the ID sequence table to be current with the
> table I imported.

You want setval().  The usual approach is

    select setval('tab_col_seq', (select max(col) from tab) + 1);

            regards, tom lane