Оригинал на GitHub
Вопрос
Такая ситуация, создали таблицу начали вносить туда данные, id стало уже 5 допустим. Удаляем все 5 строк, след id будет 6. Можно сделать чтоб начинался с 1? Сбросить счётчик id.
Ответ
id
уникальные и последовательные, но могут идти с ПРОПУСКАМИ! Потому что id
резервируется при старте транзакции и если она будет перезапущена, например, при одновременном доступе, то id
не откатывается, а берется следующий свободный.
Если вы задублируете id
, то таблица перестанет быть работоспособной по SQL-ошибке.
Как сбросить последний id
:
Подключиться к базе данных:
sudo -u postgres psql -d totum
Устанавливаем новый последний номер:
Замените SCHEMA_NAME
, NUMBER_HERE
и NAME_TABLE
на ваши значения;
SELECT setval('SCHEMA_NAME.NAME_TABLE_id_seq', NUMBER_HERE);
Нельзя установить на 0
те минимальное значение 1
. Те если вы хотите обнулить строки, то первая строка в этом случае будет c id = 2
.
Выходим:
\q