2015-07-11 4 views
1

У меня есть таблица в моей базе данных, которую я бы хотел переиндексировать.Таблица переиндексации в mysql

Поскольку некоторые строки, где удалены, теперь у меня есть:

id  name  phone 
1  xxxx  xxxxx 
4  xxxx  xxxxx 
6  xxxx  xxxxx 

И я хотел бы:

id  name  phone 
1  xxxx  xxxxx 
2  xxxx  xxxxx 
3  xxxx  xxxxx 

id уже автоинкрементным. Изменение идентификатора для строки не повлияет на остальную часть сайта, это всего лишь один и очень простой список клиентов.

Я искал в Интернете и нашел некоторые вещи с REPAIR TABLE, но я не уверен, что он адаптирован к моему случаю:/

Спасибо за вашу помощь!

+0

В чем вы работаете? В каком столбце вы хотите переиндексировать? В чем проблема? –

+0

Проблема в том, что у меня есть идентификатор, который больше не существует, потому что строка была удалена. Я предпочел бы иметь 1, 2, 3, 4, 5 вместо 1, 2, 6, 9, 10. Я хочу сбросить индексы и воссоздать их. –

+0

Возможный дубликат [удаление пробелов в автоматическом добавлении] (http://stackoverflow.com/q/9754244/1427878). Вы должны обратить особое внимание на [этот ответ] (http://stackoverflow.com/a/28507586/1427878), в частности на внешнюю страницу, на которую он ссылается в первом абзаце. – CBroe

ответ

0

Вы можете попробовать уронить поле ID, а затем воссоздать его так:

alter table `my_table` modify column id INT NOT NULL; 
alter table `my_table` drop primary key, add primary key(id); 
alter table `my_table` modify column id INT NOT NULL AUTO_INCREMENT; 

Я бы предложил попробовать это на базе развития первого в идеале, или в противном случае, по крайней мере дублировать таблицу и попробовать его на это первый. Вы не хотите рисковать «производственными» данными.

+0

Не похоже на работу :( –

+0

Вы должны быть более конкретными, чем это для любого, кто сможет вам помочь. –

+0

Это ** не работает, потому что ** старое число никогда не теряется и не заменяется Вам нужно ОТКЛЮЧИТЬ столбец, чтобы потерять их, но тогда вы теряете порядок. Так что это еще сложнее - удалите AI, добавьте новый столбец AI и т. Д. И т. Д. –

Смежные вопросы