Меню

Ошибка 1062 mysql workbench

I have a problem on this error message, when i try this:

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`,  
`data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, 
`telefono`, `mail`, `web`, `Nome-paese`, `Comune`) 
VALUES (1, 'Viale Cogel ', '120', '2012-05-21', '2012-09-30', '08:00', '23:30',
'461801243', 'informazioni@bolzano.it', 'Bolzanoturismo.it', 'Bolzano', 'BZ')

Error Code: 1062. Duplicate entry ‘1’ for key ‘PRIMARY’

I haven’t auto_increment data, PLEASE HELP me!

This is the table related, UFFICIO-INFORMAZIONI

CREATE  TABLE IF NOT EXISTS `PROGETTO`.`UFFICIO-INFORMAZIONI` (
  `ID` INT(11) NOT NULL ,
  `viale` VARCHAR(45) NULL ,
  `num_civico` VARCHAR(5) NULL ,
  `data_apertura` DATE NULL ,
  `data_chiusura` DATE NULL ,
  `orario_apertura` TIME NULL ,
  `orario_chiusura` TIME NULL ,
  `telefono` VARCHAR(15) NULL ,
  `mail` VARCHAR(100) NULL ,
  `web` VARCHAR(100) NULL ,
  `Nome-paese` VARCHAR(45) NOT NULL ,
  `Comune` CHAR(2) NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `Nome_paese` (`Nome-paese` ASC) ,
  INDEX `Comune` (`Comune` ASC) ,
  CONSTRAINT `Nome_paese`
    FOREIGN KEY (`Nome-paese` )
    REFERENCES `PROGETTO`.`PAESE` (`Nome-paese` )
    ON DELETE NO ACTION
    ON UPDATE CASCADE,
  CONSTRAINT `Comune`
    FOREIGN KEY (`Comune` )
    REFERENCES `PROGETTO`.`PAESE` (`Comune` )
    ON DELETE NO ACTION
    ON UPDATE CASCADE)
ENGINE = InnoDB

INSERT INTO

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (1, 'Viale Cogel ', '120', '2012-05-21', '2012-09-30', '08:00', '23:30', '461801243', 'informazioni@bolzano.it', 'Bolzanoturismo.it', 'Bolzano', 'BZ');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (2, 'Via Olmo', '45', '2012-05-01', '2012-09-30', '08:00', '23:30', '393495169301', 'informazioni@lech.it', 'Lechinformation.it', 'Lech', 'BZ');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (3, 'Via Quercia', '37', '2012-05-11', '2012-09-30', '08:00', '23:30', '393381679321', 'info@trento.it', 'Trentoinformaiozni.it', 'Trento', 'TN');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (4, 'Via Atene', '76', '2012-06-01', '2012-09-15', '08:00', '23:30', '39349361345', 'info@sanmartinodicastrozza.it', 'SanMartino.it', 'San Martino di Castrozza', 'TN');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (5, 'Via Salice', '45', '2012-05-01', '2012-09-20', '08:00', '23:30', NULL, 'info@pejo.it', 'Pejoturismo.it', 'Pejo', 'TN');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (6, 'Piazza Sempreverde', '34', '2012-05-15', '2012-09-15', '08:00', '23:30', '392516789', 'info@ortisei.it', 'Ortisei.it', 'Ortisei', 'BZ');

Это статья является логическим продолжением моего поста Ошибки 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/

I am not an expert on databases but I’m modeling a database on mysqlworkbench 8.0.13 and when I try to run the script it breaks at this table(regimes). I can’t figure out what KEY ‘NAME’ it is referring to. There’s no key called name on this table.

I use this table’s id as FK on two other tables. And both relationships are ONE-TO-MANY. But I don’t think this should be a problem.
Can anyone please be so kind as to point me in the right direction to solve this problem?

ERROR LOG:

Executing SQL script in server
ERROR: Error 1062: Duplicate entry 'mydb/regimes' for key 'name'
SQL Code:
        CREATE TABLE IF NOT EXISTS `mydb`.`regimes` (
          `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
          `description` VARCHAR(255) NOT NULL,
          `created_at` TIMESTAMP NULL DEFAULT NULL,
          `updated_at` TIMESTAMP NULL DEFAULT NULL,
          `deleted_at` TIMESTAMP NULL DEFAULT NULL,
          PRIMARY KEY (`id`))
        ENGINE = InnoDB
        DEFAULT CHARACTER SET = utf8mb4
        COLLATE = utf8mb4_unicode_ci

SQL script execution finished: statements: 49 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

COMPANIES TABLE

CREATE TABLE IF NOT EXISTS `mydb`.`vacancies` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `company_id` INT UNSIGNED NOT NULL,
  `manager_id` INT UNSIGNED NOT NULL,
  `regime_id` INT UNSIGNED NOT NULL,
  `vacancy_status_id` INT UNSIGNED NOT NULL,
  `vacancy_type_id` INT UNSIGNED NOT NULL,
  `title` VARCHAR(255) NOT NULL,
  `area` VARCHAR(255) NOT NULL,
  `description` TEXT NULL DEFAULT NULL,
  `exam_filename` VARCHAR(255) NULL DEFAULT NULL,
  `workload` VARCHAR(255) NOT NULL,
  `remuneration` VARCHAR(255) NOT NULL,
  `quantity` INT NOT NULL,
  `city` VARCHAR(255) NOT NULL,
  `soft_skills` VARCHAR(500) NOT NULL,
  `level` VARCHAR(255) NOT NULL,
  `specialty` VARCHAR(255) NOT NULL,
  `skills` VARCHAR(2000) NULL DEFAULT NULL,
  `help` TINYINT(1) NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `deleted_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_vacancies_companies1_idx` (`company_id` ASC) VISIBLE,
  INDEX `fk_vacancies_managers1_idx` (`manager_id` ASC) VISIBLE,
  INDEX `fk_vacancies_vacancy_types1_idx` (`vacancy_type_id` ASC) VISIBLE,
  INDEX `fk_vacancies_vacancy_statuses1_idx` (`vacancy_status_id` ASC) VISIBLE,
  INDEX `fk_vacancies_regimes1_idx` (`regime_id` ASC) VISIBLE,
  CONSTRAINT `fk_vacancies_companies1`
    FOREIGN KEY (`company_id`)
    REFERENCES `mydb`.`companies` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_vacancies_managers1`
    FOREIGN KEY (`manager_id`)
    REFERENCES `mydb`.`managers` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_vacancies_vacancy_types1`
    FOREIGN KEY (`vacancy_type_id`)
    REFERENCES `mydb`.`vacancy_types` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_vacancies_vacancy_statuses1`
    FOREIGN KEY (`vacancy_status_id`)
    REFERENCES `mydb`.`vacancy_statuses` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_vacancies_regimes1`
    FOREIGN KEY (`regime_id`)
    REFERENCES `mydb`.`regimes` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB

PROFESSIONAL_PROFILES

CREATE TABLE IF NOT EXISTS `mydb`.`professional_profiles` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `talent_id` INT UNSIGNED NOT NULL,
  `regime_id` INT UNSIGNED NOT NULL,
  `vacancy_type_id` INT UNSIGNED NOT NULL,
  `specialty` VARCHAR(255) NOT NULL,
  `level` VARCHAR(255) NOT NULL,
  `available` TINYINT(1) NOT NULL,
  `curriculum_filename` VARCHAR(255) NOT NULL,
  `soft_skills` VARCHAR(500) NOT NULL,
  `relocation` TINYINT(1) NOT NULL,
  `current_company` VARCHAR(255) NULL DEFAULT NULL,
  `current_remuneration` VARCHAR(255) NULL DEFAULT NULL,
  `intended_remuneration` VARCHAR(255) NULL DEFAULT NULL,
  `remote` TINYINT(1) NOT NULL,
  `meeting_start` TIME NOT NULL,
  `meeting_end` TIME NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `deleted_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_professional_profiles_talents1_idx` (`talent_id` ASC) VISIBLE,
  INDEX `fk_professional_profiles_vacancy_types1_idx` (`vacancy_type_id` ASC) VISIBLE,
  INDEX `fk_professional_profiles_regimes1_idx` (`regime_id` ASC) VISIBLE,
  CONSTRAINT `fk_professional_profiles_talents1`
    FOREIGN KEY (`talent_id`)
    REFERENCES `mydb`.`talents` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_professional_profiles_vacancy_types1`
    FOREIGN KEY (`vacancy_type_id`)
    REFERENCES `mydb`.`vacancy_types` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_professional_profiles_regimes1`
    FOREIGN KEY (`regime_id`)
    REFERENCES `mydb`.`regimes` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB

На днях я переносил один из своих сайтов на новый хостинг и столкнулся с проблемой. Подробно о том, как перенести сайт на другой хостинг я расскажу в одной из следующих статей, а пока расскажу о самой проблеме и ее решении.

Файлы сайта я скопировал быстро, сделал экспорт базы данных со старого хостинга, но при попытке импортировать таблицы в базу на новом хостинге возникла ошибка в My SQL вот такого вида:

Ошибка

SQL-запрос:

— — Дамп данных таблицы `rich_blc_instances` — INSERT INTO `rich_blc_instances` (`instance_id`, `link_id`, `container_id`, `container_type`, `link_text`, `parser_type`, `container_field`, `link_context`, `raw_url`) VALUES (1, 1, 1, ‘blogroll’, ‘Документация’, ‘url_field’, ‘link_url’, », ‘http://codex.wordpress.org/Заглавная_страница’), (2, 2, 2, ‘blogroll’, ‘Блог WordPress’, ‘url_field’, ‘link_url’, », ‘http://wordpress.org/news/’), (3, 3, 3, ‘blogroll’, ‘Форумы поддержки’, ‘url_field’, ‘link_url’, », ‘http://ru.forums.wordpress.org/’), (4, 4, 4, ‘blogroll’, ‘Плагины’, ‘url_field’, ‘link_url’, », ‘http://wordpress.org/extend/plugins/’), (5, 5, 5, ‘blogroll’, ‘Темы’, ‘url_field’, ‘link_url’, », ‘http://wordpress.org/extend/themes/’), (6, 6, 6, ‘blogroll’, ‘Обратная связь’, ‘url_field’, ‘link_url’, », ‘http://ru.forums.wordpress.org/forum/20’), (7, 7, 7, ‘blogroll’, ‘Планета WordPr[…]

Ответ MySQL:

#1062 — Duplicate entry ‘1’ for key ‘PRIMARY’

Так как в базах данных я полный чайник, пришлось копаться в интернете в поисках решения. На форумах довольно много записей от людей с подобной проблемой, но нигде нет четкого ответа – сделай вот так и так.

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

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

Решил проблему с ошибкой «#1062 — Duplicate entry ‘1’ for key ‘PRIMARY’» следующим образом:

Заменил в таблицах базы данных команду INSERT INTO на REPLACE INTO. В тексте ошибки, который я привел выше вы можете посмотреть в каком месте таблицы располагаются эти слова (выделил жирным).

По умолчанию, с помощью директивы insert база пыталась вставить значения в таблицу, но почему-то, находила дублированный key ‘PRIMARY’ и не могла вставить данные (как она их находила, я так и не разобрался). Директива replace заставила базу заменять данные при совпадении значений, не обращая внимания на прошлые записи.

Заменить эту директиву можно открыв сам файл базы данных с помощью текстового редактора – эта команда стоит перед блоком каждой таблицы. Открываете базу данных в текстовом редакторе, например, Akelpad и меняете все команды INSERT INTO на REPLACE INTO.

В моем же случае, получилось сделать проще – я по новой сделал экспорт таблицы на старом хостинге и в настройках экспорта установил этот самый REPLACE вместо INSERT.

Карта Tinkoff Black

Содержание

  1. linux-notes.org
  2. Исправление Duplicate entry/Error_code: 1062 в MySQL репликации (Master-Slave)
  3. One thought on “ Duplicate entry/Error_code: 1062 в MySQL репликации (Master-Slave) ”
  4. Добавить комментарий Отменить ответ
  5. How to fix “error no 1062” in MySQL servers and clusters
  6. What is MySQL Error No: 1062?
  7. How to fix Error No 1062 when your web appilcation is broken
  8. Web app error solution
  9. How to fix MySQL replication Error Code : 1062
  10. How to delete the row
  11. How to skip the row
  12. Proceed with caution
  13. How to fix MySQL restore errors
  14. How to fix duplicate entries in database dumps
  15. If your index file is corrupted
  16. Summary
  17. MAKE YOUR SERVER ROCK SOLID!
  18. Исправляем ошибку 1062 «causes auto_increment resequencing» в MySQL
  19. Как исправить ошибку 1062
  20. Пример для таблицы wp_term WordPress
  21. Благодарности
  22. Исправляем ошибку 1062 «causes auto_increment resequencing» в MySQL
  23. Как исправить ошибку 1062
  24. Пример для таблицы wp_term WordPress
  25. Благодарности
  26. Исправление ошибки 1062 при импорте базы данных

linux-notes.org

Получил ошибку «Duplicate entry» или она еще называется «Error_code: 1062» в MySQL репликации (Master-Slave). И хочу рассказать, как ее можно исправить.

Чтобы проверить, работает ли SLAVE на сервере ( с репликацией Master-Slave), нужно выполнить команду, но для начала подключитесь к серверу MYSQL:

Ошибка выглядит вот так:

  • 66.66.66.66 — ИП адрес Master-а
  • Duplicate entry ‘14158493’ — Это дублирующиеся запись, ее нужно убрать.

Исправление Duplicate entry/Error_code: 1062 в MySQL репликации (Master-Slave)

Обычно репликация MySQL остановится всякий раз, когда возникает ошибка выполнения запроса на slave. Это происходит для того, чтобы мы могли идентифицировать проблему и устранить ее, и сохранить данные в соответствии с master-ом, который послал запрос. Вы можете пропустить такие ошибки (даже если это не рекомендуется) до тех пор, пока не найдете причину.

Для начала, остановим SLAVE:

И для исправления данной проблемы, имеется вот эта команда:

И собственно, проверяем и убеждаемся что все хорошо:

Видим что проблема решена!

Если вы уверены, что пропуск этой ошибки не приведет падению slave, то можно прописать в конфиг-файл mysql пропуск этих ошибок, а сделать это можно вот так:

И вставляем (если нет, то прописываем) данную переменную:

Как было показано в примере выше, я пропускаю ошибку 1062: _ Error: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY) Message: Duplicate entry ‘%s’ for key %d_

Вы можете пропускать и другие типы ошибок:

Или можно пропускать все ошибки, но это крайне не рекомендуется делать! БУДЬТЕ ВНИМАТЕЛЬНЫ! А на этом, у меня все, статья «Duplicate entry/Error_code: 1062 в MySQL репликации (Master-Slave)» завершена.

One thought on “ Duplicate entry/Error_code: 1062 в MySQL репликации (Master-Slave) ”

SQL_SLAVE_SKIP_COUNTER=14158493;
это значит пропустит 14158493 запросов!
Так себе идея, обычно хватает SQL_SLAVE_SKIP_COUNTER=1;

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

How to fix “error no 1062” in MySQL servers and clusters

by Visakh S | May 25, 2018

Here at Bobcares, we provide Server Administration and Maintenance services to website owners and web solution providers.

An error we sometimes see in MySQL servers while updating, restoring or replicating databases is: “Error No: 1062” or “Error Code: 1062” or “ERROR 1062 (23000)

A full error log that we recently saw in a MySQL cluster is:

could not execute Write_rows event on table mydatabasename.atable; Duplicate entry ’174465′ for key ‘PRIMARY’, Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event’s master log mysql-bin.000004, end_log_pos 60121977

What is MySQL Error No: 1062?

Simply put, error 1062 is displayed when MySQL finds a DUPLICATE of a row you are trying to insert.

We’ve seen primarily 4 reasons for this error:

  • The web application has a bug that adds primary key by large increments, and exhausts the field limit.
  • MySQL cluster replication tries to re-insert a field.
  • A database dump file contains duplicate rows because of coding error.
  • MySQL index table has duplicate rows.

In rare cases, this error is shown when the table becomes too big, but let’s not worry about that for now.

How to fix Error No 1062 when your web appilcation is broken

Every database driven application like WordPress, Drupal or OpenCart distinguishes one user or data set from another using something called a “primary field”.

This primary field should be unique for each user, post, etc.

Web apps use a code like this to insert data:

INSERT INTO table (‘id‘,’field1′,’field2′,’field3’) VALUES (‘NULL‘,’data1′,’data2′,’data3’);

Where “id” is the unique primar key, and is set to auto-increment (that is a number inserted will always be greater than the previous one so as to avoid duplicates).

This will work right if the value inserted is “NULL” and database table is set to “auto-increment”.

Some web apps make the mistake of passing the value as

where the first field is omitted. This will insert random numbers into the primary field, rapidly increasing the number to the maximum field limit (usually 2147483647 for numbers).

All subsequent queries will again try to over-write the field with “2147483647”, which MySQL interprets as a Duplicate.

Web app error solution

When we see a possible web application code error, the developers at our Website Support Services create a patch to the app file that fixes the database query.

Now, we have the non-sequential primary key table to be fixed.

For that, we create a new column (aka field), set it as auto-increment, and then make it the primary key.

The code looks approximately like this:

alter table table1 drop primary key;
alter table table1 add field2 int not null auto_increment primary key;

Once the primary key fields are filled with sequential values, the name of the new field can be changed to the old one, so that all web app queries will remain the same.

Warning : These commands can get very complex, very fast. So, if you are not sure how these commads work, it’s best to get expert assistance.

How to fix MySQL replication Error Code : 1062

Due to quirks in network or synching MySQL is sometimes known to try and write a row when it is already present in the slave.

So, when we see this error in a slave, we try either one of the following depending on many factors such as DB write traffic, time of day etc.

  • Delete the row – This is the faster and safer way to continue if you know that the row being written is exactly the same as what’s already present.
  • Skip the row – If you are not sure there’d be a data loss, you can try skipping the row.

How to delete the row

First delete the row using the primary key.

delete from table1 where field1 is key1;

Then stop and start the slave:

stop slave;
start slave;
select sleep(5);

Once it is done, check the slave status to see if replication is continuing.

show slave status;

If all is well, you’ll see “Seconds_Behind_Master” as a number. If not, your replication is broken and it needs to be fixed.

How to skip the row

For this, you can set the Skip counter to 1.

Here’s how it could look like:

stop slave;
set global SQL_SLAVE_SKIP_COUNTER = 1;
start slave;
select sleep(5);

Then check the slave status to see if replication is continuing.

show slave status;

Again, if all is well, you’ll see “Seconds_Behind_Master” as a number. If not, your replication is broken and it needs to be fixed.

Proceed with caution

Stopping and starting the slave cannot cause any issue unless you havea very busy database. But, the delete statement, skipping and following up with a broken replication requires expert knowledge about MySQL organization and functioning.

If you are not sure how these commands will affect your database, we recommend you talk to a DB administrator.

How to fix MySQL restore errors

Restore errors usually take the form of:

ERROR 1062 (23000) at line XXXX: Duplicate entry ‘XXXXXX’ for key X”

When restoring database dumps, this error can happen due to 2 reasons:

  • The SQL dump file has dulpicate entries.
  • The index file is duplicate rows.

To find out what is exactly going wrong, we look at the conflicting rows and see if they have the same or different data.

If it’s the same data, then the issue could be due to duplicate index rows. If it is different data, the SQL dump file needs to be fixed.

How to fix duplicate entries in database dumps

This situation can happen when two or more tables are dumped into a single file without checking for duplicates.

To resolve this, one way we’ve used is to create a new primary key field with auto-increment and then change the queries to insert NULL value into it.

Then go ahead with the dump.

Once the new primary field table is fully populated, the name of the field is changed to the old primary table name to preserve the old queries.

The alter table command will look like this:

alter table table1 change column ‘newprimary’ ‘oldprimary’ varchar(255) not null;

If your index file is corrupted

There’s no easy way to fix an index file if there are duplicate entries in it.

You’ll have to delete the index file, and restore that file either from backups or from another server where your database dump is restored to a fresh DB server.

The steps involved are quite complex to list out here. We recommend that you consult a DB expert if you suspect the index file is corrupted.

Summary

MySQL error no 1062 can occur due to buggy web applications, corrupted dump files or replication issues. Today we’ve seen the various ways in which the cause of this error can be detected, and how it can be resolved.

MAKE YOUR SERVER ROCK SOLID!

Never again lose customers to poor page speed! Let us help you.

Источник

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

Это статья является логическим продолжением моего поста Ошибки 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 должна выглядеть так:

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

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

или редактирования в phpmyadmin

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

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

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

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

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

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

Источник

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

Это статья является логическим продолжением моего поста Ошибки 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 должна выглядеть так:

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

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

или редактирования в phpmyadmin

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

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

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

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

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

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

Источник

Исправление ошибки 1062 при импорте базы данных

На днях я переносил один из своих сайтов на новый хостинг и столкнулся с проблемой. Подробно о том, как перенести сайт на другой хостинг я расскажу в одной из следующих статей, а пока расскажу о самой проблеме и ее решении.

Файлы сайта я скопировал быстро, сделал экспорт базы данных со старого хостинга, но при попытке импортировать таблицы в базу на новом хостинге возникла ошибка в My SQL вот такого вида:

— — Дамп данных таблицы `rich_blc_instances` — INSERT INTO `rich_blc_instances` (`instance_id`, `link_id`, `container_id`, `container_type`, `link_text`, `parser_type`, `container_field`, `link_context`, `raw_url`) VALUES (1, 1, 1, ‘blogroll’, ‘Документация’, ‘url_field’, ‘link_url’, », ‘http://codex.wordpress.org/Заглавная_страница’), (2, 2, 2, ‘blogroll’, ‘Блог WordPress’, ‘url_field’, ‘link_url’, », ‘http://wordpress.org/news/’), (3, 3, 3, ‘blogroll’, ‘Форумы поддержки’, ‘url_field’, ‘link_url’, », ‘http://ru.forums.wordpress.org/’), (4, 4, 4, ‘blogroll’, ‘Плагины’, ‘url_field’, ‘link_url’, », ‘http://wordpress.org/extend/plugins/’), (5, 5, 5, ‘blogroll’, ‘Темы’, ‘url_field’, ‘link_url’, », ‘http://wordpress.org/extend/themes/’), (6, 6, 6, ‘blogroll’, ‘Обратная связь’, ‘url_field’, ‘link_url’, », ‘http://ru.forums.wordpress.org/forum/20’), (7, 7, 7, ‘blogroll’, ‘Планета WordPr[…]

#1062 — Duplicate entry ‘1’ for key ‘PRIMARY’

Так как в базах данных я полный чайник, пришлось копаться в интернете в поисках решения. На форумах довольно много записей от людей с подобной проблемой, но нигде нет четкого ответа – сделай вот так и так.

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

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

Решил проблему с ошибкой «#1062 — Duplicate entry ‘1’ for key ‘PRIMARY’» следующим образом:

Заменил в таблицах базы данных команду INSERT INTO на REPLACE INTO. В тексте ошибки, который я привел выше вы можете посмотреть в каком месте таблицы располагаются эти слова (выделил жирным).

По умолчанию, с помощью директивы insert база пыталась вставить значения в таблицу, но почему-то, находила дублированный key ‘PRIMARY’ и не могла вставить данные (как она их находила, я так и не разобрался). Директива replace заставила базу заменять данные при совпадении значений, не обращая внимания на прошлые записи.

Заменить эту директиву можно открыв сам файл базы данных с помощью текстового редактора – эта команда стоит перед блоком каждой таблицы. Открываете базу данных в текстовом редакторе, например, Akelpad и меняете все команды INSERT INTO на REPLACE INTO.

В моем же случае, получилось сделать проще – я по новой сделал экспорт таблицы на старом хостинге и в настройках экспорта установил этот самый REPLACE вместо INSERT.

Источник

I already have a table with some data in it. And now I want to add a new column «id» and make it a primary key. I’m using MySQL Workbench. So, I’m just adding a new key and then setting it as PK and NN. But for some reason, this apparently simple and straightforward operation doesn’t work. I get:

ERROR 1062: Duplicate entry ‘0’ for key ‘PRIMARY’

Why is that?

ReinstateMonica3167040's user avatar

asked Feb 10, 2015 at 11:49

Visan Cosmin's user avatar

You probably already have a field set as primary key in that table.
I guess you would have to disable that field as PK and add the new id-column in the same statement.

answered Feb 10, 2015 at 11:54

Alex's user avatar

AlexAlex

76111 silver badges23 bronze badges

4

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка 10617 ауди а6 с7
  • Ошибка 1061 как исправить