Re: Reset sequence to current maximum value of rows
От | Ron Johnson |
---|---|
Тема | Re: Reset sequence to current maximum value of rows |
Дата | |
Msg-id | CANzqJaAavydD4XMgkXRUQ_=aAFOGBMVBCKfeB0PnhrZrAWbgng@mail.gmail.com обсуждение исходный текст |
Ответ на | Reset sequence to current maximum value of rows (Rich Shepard <rshepard@appl-ecosys.com>) |
Ответы |
Re: Reset sequence to current maximum value of rows
|
Список | pgsql-general |
On Thu, Jun 13, 2024 at 1:20 PM Rich Shepard <rshepard@appl-ecosys.com> wrote:
Two tables have a sequence for the PK. Over time I manually entered the PK
numbers not being aware of applying DEFAULT to generate the next number.
I just tried to set one table's PK sequence to the current max(PK) value
using this expression from a stackexchange thread:
SELECT setval('<sequence_name>', <current_max_number>, true); -- next value will be max(PK) + 1
Needing to add a new row to a table for a specific industry table (with 52
rows) I set the PK as DEFAULT in the INSERT INTO expression. To my surprise
and disappointment all 52 rows now have the company_name column as the newly
inserted name. Feh! I need to restore all the correct names for each PK.
If the table has a primary key, then the command should have failed with a duplicate key error as soon as the first dupe was discovered.
What does your table definition look like?
В списке pgsql-general по дате отправления: