Показать сообщение отдельно
  #2 (permalink)  
Старый 13.12.2018, 14:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Поле с автоинрементом должно иметь либо уникальный индекс, либо быть первичным ключом (также будет иметь уникальный индекс).

ALTER TABLE `table`
  ADD UNIQUE KEY `field` (`field`) /* или ADD PRIMARY KEY  `field` (`field`) */

ALTER TABLE `table`
  MODIFY `field` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=последнее значение поля + 1


То есть значения поля на момент добавления индексов должны быть уникальны, и нужно знать последнее значение, чтобы его + 1 подставить в запрос.

PS. из-за того, что индексы уже идут не поп порядку? - в базе вообще в навал все, а индексы хранятся отдельно, а что касается значений, то уникальный с автоинкрементом означает, что некоторых значений вообще может и не быть, удалены, и они больше базой использоваться не будут.

Последний раз редактировалось laimas, 13.12.2018 в 14:41.
Ответить с цитированием