- 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 );
many thanks!