2013-08-08 3 views
0

У меня есть блог с 4 оставшимися сообщениями. Идентификаторы сообщений: 0, 1, 8 и 10. Это происходит из-за того, что я удалил сообщения 2-7 и отправил 9. Есть ли какие-либо возможности «исправить» эти идентификаторы сообщений, чтобы в моей таблице базы данных они идти от 1 до 3 и смежны?CakePHP: Как сделать значения автоматического прироста смежными снова после удаления строк

+1

Вы * не *. Вы можете, но вы абсолютно не должны. Поле с AI, вероятно, является суррогатным ключом, и в этом случае их изменение нарушит вашу схему базы данных. Если ваши строки нуждаются в непрерывной нумерации, вы не должны использовать ИИ в первую очередь. – Sammitch

+0

Я согласен, лучше полагаться на URL-адреса, основанные на slug, возможно даже с датой - как это делает Wordpress. Это также лучше для чтения/автозаполнения в браузерах и для SEO. Сам идентификатор не имеет значения (и если он непрерывный или нет). – mark

ответ

1

Вы можете удалить столбец MySQL вручную, а затем повторно добавить его с теми же свойствами. Строки будут переупорядочены.

В качестве альтернативы, использовать эти команды:

SET @count = 0; 
UPDATE `users` SET `users`.`id` = @count:= @count + 1; 

Заменить users и id соответствующим образом.

Вы можете восстановить свой автомобиль приращением колонки ID также с:

ALTER TABLE `users` AUTO_INCREMENT = 1; 

Где пользователи заменяется на имя вашей таблицы.

0

вы можете изменить их идентификаторы вручную, а затем установите значение в auto_increment

alter table users auto_increment 5