Исправляем ошибку 1062 «causes auto_increment resequencing» в MySQL

Опубликовано: 20 ноября 2016
Раздел(ы): MySQL, WordPress, Вебмастеру
Просмотры: 5666
Комментарии: 4

Это статья является логическим продолжением моего поста Ошибки WordPress при работе с MySql и в ней я расскажу, что делать если в процессе восстановления таблиц MySQL для WordPress вы получили ошибку ERROR 1062: ALTER TABLE causes auto_increment resequencing…

Как исправить ошибку 1062

Не пугайтесь, но для того чтобы исправить ошибку 1062 базы данных MySQL, просто удалите в таблице строку с полем для которого необходимо значение auto_increment. После чего создайте эту строку заново с правильными значениями.

Пример для таблицы wp_term WordPress

Предположим, что у нас неисправна таблица WordPress wp_term. Для исправлении ошибки 1062 воспользуемся утилитой PhpMyAdmin.

Исправная таблица wp_term в WordPress должна выглядеть так:
error-1062_0

У меня в неисправной таблице wp_term отсутствовало значение auto_increment для term_id, что приводило к некорректной работе WordPress. В частности было невозможности создать новую Рубрику для записей.
error-1062_1

Если при использовании SQL запроса

ALTER TABLE wp_term CHANGE term_id `term_id` bigint(20) unsigned NOT  AUTO_INCREMENT;

или редактирования в phpmyadmin
error-1062_2

вы получили сообщение об ошибке «ERROR 1062: ALTER TABLE causes auto_increment resequencing..», то удалите это поле (строку) [1]…
error-1062_3

… а затем создайте заново [2]:
error-1062_4

при выборе пункта AUTO_INCREMENT у вас появится окно, в нем просто нажмите [Вперёд]:
error-1062_5

Сохраняем внесенные изменения, теперь таблица исправна. При необходимости, по аналогии с term_id, выполняем вышеописанные действия для других таблиц.

Благодарности

При написании статьи были использованы следующие источники:

  1. http://langui.net/2012/01/alter-table-auto_increment-resequencing-resulting-duplicate-entry-1-key-primary/
  2. http://got-quadrat.ru/blog/pochinka-klyuchej-u-tablits-wordpress-pri-kolliziyah/

Обсуждение (комментарии к статье)

  1. Неправильно! Вам просто нужно удалить строку у которой term_id = 0
    AI работает только от еденицы.

  2. Спасибо! Только у вас нашел, как сделать. Думал все, трындец), ни один модуль на DLE установить не мог. Оказывается все так просто (когда знаешь) 🙂 Благодарю!

  3. Да, лучше зайдите в Обзор и у записи с ID=0 измените 0 на последнее число+1 (т.е. если в Обзоре у вас последний ID, например, 9, то сделайте 10), сохраните, а потом зайдите в Структура и там выделите поле ID и нажмите заменить и далее поставьте галку в поле A-I и сохраните.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2024
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 6 | 0,144 сек. | 8.33 МБ