Resetting identity columns

Поиск
Список
Период
Сортировка
От Ray O'Donnell
Тема Resetting identity columns
Дата
Msg-id 5db0ed5c-00ba-65fa-92f0-7e02c1495d18@rodonnell.ie
обсуждение исходный текст
Ответы Re: Resetting identity columns  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: Resetting identity columns  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: Resetting identity columns  (Thomas Kellerer <spam_eater@gmx.net>)
Список pgsql-general
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);

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.

-- 
Raymond O'Donnell // Galway // Ireland
ray@rodonnell.ie



В списке pgsql-general по дате отправления:

Предыдущее
От: Scot Kreienkamp
Дата:
Сообщение: RE: Streaming Replication
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: Resetting identity columns