Re: Resetting identity columns

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Ray O'Donnell <ray(at)rodonnell(dot)ie>, 'PostgreSQL' <pgsql-general(at)postgresql(dot)org>
Subject: Re: Resetting identity columns
Date: 2019-04-22 15:45:08
Message-ID: 2b2a0f4f-c422-2f5f-1355-e37e446f104e@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 4/22/19 8:30 AM, Ray O'Donnell wrote:
> Hi all,
>
> I'm probably doing something silly.... I'm migrating data from one
> database table to another, where the old table used a SERIAL primary key
> and the new one uses GENERATED BY DEFAULT AS IDENTITY. Having loaded the
> data into the new table, I need to reset the underlying sequence so that
> it picks up from the highest existing value.
>
> I'm using PostgreSQL 11.2 on Debian 9.
>
> I've tried:
>
> =# alter table orders alter column order_id restart with (
> select max(order_id) + 1 from orders);

https://www.postgresql.org/docs/11/sql-altertable.html

"ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } |
SET sequence_option | RESTART [ [ WITH ] restart ] } [...]"

See if the above form will work in your Do block below.

>
> ERROR:  syntax error at or near "("
> LINE 1: ...r table orders alter column order_id restart with (select ma...
>
>
> I also tried it with a DO block:
>
> =# do language plpgsql $$
> $# declare m_max_id bigint;
> $# begin
> $# select max(order_id) + 1 from orders into m_max_id;
> $# alter table orders alter column order_id restart with m_max_id;
> $# end;
> $# $$;
>
> ERROR:  syntax error at or near "m_max_id"
> LINE 5: ...er table orders alter column order_id restart with m_max_id;
>
>
> What am I missing?
>
> I should add that this is part of a larger migration script; otherwise I
> could just do it by hand the command line.
>
> Thanks in advance,
>
> Ray.
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2019-04-22 15:54:22 Re: Resetting identity columns
Previous Message Ray O'Donnell 2019-04-22 15:30:58 Resetting identity columns