Intereting Posts
Получить папку загрузки и имя файла из браузера session_start () и заголовок ('location:') redirect Codeigniter – SEO-URL-структура URL-адресов (реализация слизней) MongoDB: запрос нескольких коллекций с двумя запросами? Как издеваться над встроенными функциями php socket? Проверьте тип и размер файла изображения перед загрузкой файла в php нужна помощь при размещении на стене пользователя PHP createFromFormat для версии 5.2 Использование переменной Javascript в шаблоне Twig с использованием платформы Silex В структуре Yii, как я могу объединить столбцы и показать в качестве отображаемой строки в выпадающем списке В чем разница между перенаправлением и переходом в рамках Zend Регулярное выражение для соответствия блоку текста с первой двойной новой строкой? Самый короткий способ сравнить 2 даты в формате dd / mm / yyyy Carbon.php Символ разделения не найден. Данные отсутствуют. Создание нового клиента в Magento (RESTful, PHP)

Таблица усечения Mysql, автоматическое увеличение не работает

Поэтому я просто урезал таблицу, но теперь мой первичный ключ не будет автоматически увеличиваться. Каждый раз, когда я добавляю второй элемент в таблицу, он возвращается с 1062: Дублирует запись '0' для ключа 'PRIMARY'

Я подумал, что когда вы обрезаете таблицу, она просто сбрасывает автоинкремент обратно на 1.

Я ищу вокруг, что я мог бы сделать, но я встретил многих людей, которые просто усекались.

Что я сделал

"TRUNCATE TABLE mytable;" 

Должно быть, я сделал что-то не так.

Related of "Таблица усечения Mysql, автоматическое увеличение не работает"

Эта ошибка не влияет на Mysql 5.0, и она повторяется в версиях 6.0 и 5.1.23 и 5.1BK.

См. Эту ссылку для доказательства

Следующим является легкодоступный и эффективный метод обхода – это ALTER значение autoinc после того, как таблица усечена.

Повторно инициализировать значение autoinc сразу после усечения

alter table tablename AUTO_INCREMENT = n; / * установить n по желанию * /

Из MySQL 5.0.13 счетчик AUTO_INCREMENT сбрасывается до нуля с помощью TRUNCATE TABLE, независимо от того, существует ли ограничение внешнего ключа.

Все, что вам нужно сделать, это:

SET FOREIGN_KEY_CHECKS = 0;

обрезайте свои таблицы и измените их на

SET FOREIGN_KEY_CHECKS = 1;

После запуска TRUNCATE обработчик таблицы не запоминает последнее используемое значение AUTO_INCREMENT, но начинает отсчет с самого начала. Это справедливо даже для MyISAM и InnoDB, которые обычно не повторяют значения последовательностей.

Пользователь этого запроса будет работать.

ALTER TABLE table_id CHANGE table_id table_id INT (11) NOT NULL AUTO_INCREMENT