трабл с auto increment

igel_art

Guest
трабл с auto increment

Error(): Duplicate entry '2147483647' for key 1
Вот такую фигню выдают. auto_increment как-то перескочил на 2147483647, и как его вернуть назад, чтоб 4500 был, и, соответственно, далее....
 

flash-vkv

Новичок
Re: трабл с auto increment

как-то ковырялся с id и читал вроде того что БД хранит значения последнего id в отдельной таблице ( те для всех табл. одна табл id ) но это говорилось относителго других движков . мож для mysql чтото вроде этого посмотри в таблицах но я не уверин
 

igel_art

Guest
Вот спасибо! А как просто то ларчик открывался :)
 

baev

‹°°¬•
Команда форума
Не забудьте после ALTER сделать REPAIR TABLE -- так, на всякий случай...
 

Junkers

Новичок
А вот мне не помог этот способ...

Проблема: в таблице 127 записей. По идее, следующий id должен равняться 128. Смотрю в phpMyAdmin - Далее Autoindex - 127... Через раздел "Операции" попытался изменить id на 128. Выполнился такой запрос: ALTER TABLE `user` PACK_KEYS =1 CHECKSUM =0 DELAY_KEY_WRITE =0 AUTO_INCREMENT =127. Ладно, втупую вбил этот запрос вручную, изменил 127 на 128. Снова показался этот запрос, вместо 127 стояло 128, однако ничего не изменилось... REPAIR тоже не помог.

Как бороться? Спасибо.

-~{}~ 27.05.06 22:10:

Хостер сообщил, что обновлял MySQL. Нынче версия (по phpMyAdmin - 4.0.27)
 

facelift

Новичок
Типы бывают signed/unsigned т.е. со знаком (+/-) и без.
Например если у нас int 4 байта, то его максимальное значение со знаком 2147483647(0x7FFFFFFF), а без 4294967295 (0xFFFFFFFF).
А для int в один байт со знаком 255, а без 127.
Ну и соответственно нижнее значение у signed не может быть отрицательным.
 

Junkers

Новичок
facelift, так что сделать-то с таблицей, чтобы следующее id было 128? А то новые записи в таблицу не вставляются
 

Фанат

oncle terrible
Команда форума
перестать жадничать и поставить нормальный тип поля.
 

Junkers

Новичок
Фанат, ты меня опередил... Только хотел написать, что врубился в проблему: надо изменить кол-во байтов. Выполнил вот такой запрос: ALTER TABLE `table` CHANGE `id` `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT и следующий id стал равен 128. Просто facelift объяснил несолько заумно, пришлось поразгадывать.

Все равно, большое спасибо!!!
 
Сверху