Как исправить промежутки от удаленных строк MySQL?

У меня есть таблица cars_catalog, в которой изначально было 250 записей. После некоторых удалений строк из таблицы, осталось 187 записей, порядок id был нарушен, т.е. раньше порядок id был 1..250, а сейчас 1..15,17,66..112.. и т.д.. Как сделать так чтобы значения поля id были 1..187?
запрос id: id INTEGER PRIMARY KEY AUTO_INCREMENT


Ответы (1 шт):

Автор решения: RusArtM

Если на таблицу не ссылаются другие, или в констрейнте стоит ON UPDATE CASCADE то можно обновить ключи и сбросить автоинкремент таблицы, если он есть:

SET @num = 0;
UPDATE table1 
SET id = @num := @num +1 
WHERE id > 0
ORDER BY id;

ALTER TABLE table1 auto_increment = 1;
→ Ссылка