Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jackie-do/c3ae74a45c25f3b87aa0480538f51f6c to your computer and use it in GitHub Desktop.
Save jackie-do/c3ae74a45c25f3b87aa0480538f51f6c to your computer and use it in GitHub Desktop.
Update the sequence field (auto increment field) manually
  • Get the max current value of a field (base on current data)
SELECT MAX(<field_name>) FROM <table_name>;

example:

SELECT MAX(id) FROM blogs;
  • Get the current value of an auto-increment field (for checking)
SELECT currval(pg_get_serial_sequence('<table_name>', '<field_name>'));
# or
SELECT currval('<table_name_field_name_seq>');

example:

SELECT currval(pg_get_serial_sequence('blogs', 'id'));
# or
SELECT currval('blogs_id_seq');
  • Get the next value of an auto-increment field (for checking)
SELECT nextval(pg_get_serial_sequence('<table_name>', '<field_name>'));
# or
SELECT nextval('<table_name_field_name_seq>');

example:

SELECT nextval(pg_get_serial_sequence('blogs', 'id'));
# or
SELECT nextval('blogs_id_seq');
  • Update the value of auto-increment field manually
SELECT setval(pg_get_serial_sequence('<table_name>', '<field_name>'), <value>);
# or
SELECT setval('<table_name_field_name_seq>', <value>);

example:

SELECT setval('blogs_id_seq', (SELECT MAX(id) FROM blogs) + 1 );
@kieetnvt
Copy link

kieetnvt commented Jan 4, 2018

many thanks!

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