Skip to content

Instantly share code, notes, and snippets.

@henriquemenezes
Created March 31, 2016 12:23
Show Gist options
  • Select an option

  • Save henriquemenezes/962829815e8e7875f5f4376133b2f209 to your computer and use it in GitHub Desktop.

Select an option

Save henriquemenezes/962829815e8e7875f5f4376133b2f209 to your computer and use it in GitHub Desktop.
PostgreSQL set Next ID Sequence Value to MAX(id) from Table
-- Get Max ID from table
SELECT MAX(id) FROM table;
-- Get Next ID from table
SELECT nextval('table_id_seq');
-- Set Next ID Value to MAX ID
SELECT setval('table_id_seq', (SELECT MAX(id) FROM table));
@fabioespinosa

Copy link
Copy Markdown

If sequence contains uppercase letters in name:
SELECT setval('"Foo"', 42);

Notice the double quotes inside the single quotes

@olistik

olistik commented Dec 14, 2019

Copy link
Copy Markdown

Thanks!

@RedShift1

Copy link
Copy Markdown

See https://wiki.postgresql.org/wiki/Fixing_Sequences to fix all sequences in one go

@prempopatia

Copy link
Copy Markdown

See https://wiki.postgresql.org/wiki/Fixing_Sequences to fix all sequences in one go

Thanks for this.

@urpylka

urpylka commented Jan 1, 2021

Copy link
Copy Markdown

Hello, it didn't fit me (if the table is empty, if I need to reset to the first value). I've made my own procedure based on it, maybe it can be helpful for somebody. https://urpylka.com/posts/post-15/

@denis-petrov

Copy link
Copy Markdown

Thanks!

@ahsan-babar

Copy link
Copy Markdown

Thank you

@mbustamanteo

Copy link
Copy Markdown

See https://wiki.postgresql.org/wiki/Fixing_Sequences to fix all sequences in one go

Thank you!!

@zouchao

zouchao commented Apr 8, 2022

Copy link
Copy Markdown
select setval('table_id_seq', max(id)) from table_name;  -- Next nextval will return  max(id) + 1

ghost commented May 19, 2022

Copy link
Copy Markdown

If sequence contains uppercase letters in name: SELECT setval('"Foo"', 42);

Notice the double quotes inside the single quotes

Thank you very much, that was really useful ! Spent hours... lol

@liaden

liaden commented Jun 9, 2022

Copy link
Copy Markdown

See https://wiki.postgresql.org/wiki/Fixing_Sequences to fix all sequences in one go

Not always an issue, but worth noting: the value that it sets it to if there are no rows is 1 which results in the first invocation of nextval returning 2 and skipping 1.

@mjerem34

Copy link
Copy Markdown

Thanks !

@joedave13

Copy link
Copy Markdown

Thank you!

@naimurhasan

Copy link
Copy Markdown

thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment