Запрос на Переиндексирование первичного ключа базы данных MySQL
у меня есть таблица в MySQL, которая имеет столбец первичного ключа.
допустим:
ID | Value
1 | One
2 | Two
6 | Three
8 | Four
9 | Five
Как мне это сделать:
ID | Value
1 | One
2 | Two
3 | Three
4 | Four
5 | Five
других таблиц нет. Только один. Я просто хочу, чтобы ID был в правильной серии.
любое предложение?? Возможно, вопрос.. :)
3 ответов
существует даже простой способ достичь результата, написав этот запрос
SET @newid=0;
UPDATE tablename SET primary_key_id=(@newid:=@newid+1) ORDER BY primary_key_id;
этот запрос переиндексирует первичный ключ, начиная с 1
Мне кажется, у вас есть два варианта.
1) Создайте новую таблицу и скопируйте существующие данные.
2) Добавьте еще одно поле автоинкремента в существующую таблицу, затем удалите исходный столбец.
ALTER TABLE tableName ADD NewIdn INT NOT NULL AUTO_INCREMENT KEY
Я сделал это в phpmyadmin, сняв флажок A_I (параметр автоматического приращения), нажав кнопку Сохранить, а затем снова проверив его и снова нажав кнопку Сохранить.