Здравствуйте! Использую mysql Ver 5.6.14. Захожу через консоль. Выбираю базу: Код (PHP): use db_name Набираю команду: Код (PHP): ALTER TABLE `name_table` auto_increment = 8; Получаю ответ: Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 А значение счетчика auto_increment в таблице не меняется. Так и продолжает лепить по порядку со старого значения. Пробовал и от root'а и от владельца таблицы, ничего не получается. У всех есть привилегии на данную БД и ALTER. На другой БД, на этом же сервере все изменяется. Не подскажите в чем может быть дело?
Заметил одну особенность, если у меня сейчас счетчик auto_increment = 1000 и я делаю ALTER TABLE `name_table` auto_increment = 1100; то значение изменяется на 1100. Если сделать ALTER TABLE `name_table` auto_increment = 900; то значение не изменяется.
Посмотрел. Не изменяется в меньшую сторону, только в большую. Через phpmyadmin тожесамое. Ошибок не выдает. Пишет ок, а значение не изменяется.
Это тоже уже проверил. Последний id 899. После него все записи удалены. Я и хотел поставить по порядку, чтобы следующий начинался с id 900. SET foreign_key_checks = 0; ALTER TABLE `name_table` auto_increment = 900; SET foreign_key_checks = 1; Не работает. Вот даже сейчас например у меня стоит auto_increment = 900, я его делаю auto_increment = 901 и назад на 900 откатить уже не могу. Весь мозг взорвал. Можно забить кончено, но из принципа уже хочу разобраться. Добавлено спустя 6 минут 27 секунд: Попробовал в этой же БД создать новую пустую таблицу, в ней создал поле id первичный ключ и его автоинкремент. Не добавлял ни одной записи. Изменяю счетчик auto_increment = 5. Все, обратно меньше 5 мне его не изменить. Ни одной записи в таблице. С другими БД в этой же СУБД таких траблов нет.
Насколько я помню, это поведение было присуще MyISAM таблицам. В InnoDB все же ориентир идет на значения в таблице.
You cannot reset the counter to a value less than or equal to any that have already been used. For MyISAM, if the value is less than or equal to the maximum value currently in the AUTO_INCREMENT column, the value is reset to the current maximum plus one. For InnoDB, if the value is less than the current maximum value in the column, no error occurs and the current sequence value is not changed. (c) https://dev.mysql.com/doc/refman/5.5/en/alter-table.html
У меня InnoDB Спасибо за break ну бывает у меня такое - "бесконечный цикл". Потом жалею, что пол дня потеряно. Всем спасибо за ответы! Извините за беспокойство!