Skip to content

Instantly share code, notes, and snippets.

@henriquemenezes
Created March 31, 2016 12:23
Show Gist options
  • Save henriquemenezes/962829815e8e7875f5f4376133b2f209 to your computer and use it in GitHub Desktop.
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));
@ahsan-babar
Copy link

Thank you

@mbustamanteo
Copy link

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

Thank you!!

@zouchao
Copy link

zouchao commented Apr 8, 2022

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

Copy link

ghost commented May 19, 2022

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
Copy link

liaden commented Jun 9, 2022

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

Thanks !

@joedave13
Copy link

Thank you!

@naimurhasan
Copy link

thanks

@obadahalak
Copy link

The issue persists and can only be resolved by restarting the project after running setval query

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