Задать вопрос
@greenych

Выдаёт ошибку #1062 — Дублирующаяся запись '??????' по ключу 'PRIMARY', как исправить?

Я пыталась загрузить уже существующую базу данных на хостинг через админку в PHP. Мне выдало такую ошибку, как на скрине. При этом сам форум phbb уже есть, просто хотелось подгрузить старую базу, чтобы не копировать все сообщения вручную.

Как исправить эту ошибку и возможно ли вообще? Хотя читала, что можно использовать IGNORE, чтобы игнорировать эти повторяющиеся строки. Но я не совсем поняла, куда вписать эту команду, пока разбираюсь с MySQL.

69930071990ca921408240.png
  • Вопрос задан
  • 179 просмотров
Подписаться 1 Простой 8 комментариев
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
IGNORE вписывается сразу после INSERT: Во всех SQL-командах меняем "INSERT ..." на "INSERT IGNORE...". Но причина совсем не в этом...

Знаки вопроса вместо текста - вероятнее всего, на хостинге неправильно настроена кодировка созданной базы данных и вместо нормальных текстов в базе сохраняются знаки вопросов, что и приводит к "дублированию". Либо неправильно настроена кодировка в PHP-коде при подключении к базе данных (с тем же эффектом). И начинать надо с проверки этих кодировок.
Ответ написан
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Знаки вопросов обычно при неверном отображении через пых, то есть криво настроено соединение (неверно указан чарсет). В базу вопросики обычно не попадают, так как бд хранит информацию побитово и даже если чарсет не совпадает, в базе будут кривые символы, но не вопросики. В этом можно убедиться просто открыв дамп в любом текстовом редакторе.

Я пыталась загрузить уже существующую базу данных на хостинг через админку в PHP.
У пхп нет админки, судя по всему вы использовали phpMyAdmin?
Судя по комментариям, с кодировкой вы разобрались, данные в норме, но вы накатываете новую базу поверх старой.
В этот раз вылезло вот такое, но ошибка дублирования снова есть...
Собственно и в первом случае у вас была эта же ошибка, просто теперь вам нормально отображается текст.

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

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

PS: в качестве эксперимента рекомендую завести еще одну тестовую бд, и там попробовать слить базы, потихоньку руками удаляя дубли из дампов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы