Как исправить промежутки от удаленных строк 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;