Подтвердить что ты не робот

# 1062 - Повторяющаяся запись для ключа "PRIMARY"

Итак, моя база данных MySQL ведет себя немного странно. Это моя таблица:

Name shares id  price   indvprc
cat   2     4   81      0
goog  4     4   20      20
fb    4     9   20      20

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

fb    4      6     20   20 

Он вернет ошибку. Но если я изменил номер акций до 6, он будет работать нормально. Это из-за одного из моих столбцов, которые могут быть уникальными, или это просто что-то с mysql?

4b9b3361

Ответ 1

Вам нужно удалить shares в качестве PRIMARY KEY ИЛИ UNIQUE_KEY

Ответ 2

Используйте SHOW CREATE TABLE your-table-name, чтобы увидеть, какой столбец является вашим основным ключом.

Ответ 3

  • Убедитесь, что выбрано PRIMARY KEY AUTO_INCREMENT.
  • Просто активируйте Auto increment:
    ALTER TABLE [table name] AUTO_INCREMENT = 1
  • При выполнении команды вставки вам нужно пропустить этот ключ.

Ответ 4

Я решил это, изменив свойство "lock" с "shared" на "exclusive":

ALTER TABLE `table` 
CHANGE COLUMN `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT COMMENT '' , LOCK = EXCLUSIVE;

Ответ 5

Каково точное сообщение об ошибке? # 1062 означает дублируемую запись, нарушающую ограничение первичного ключа для столбца, - которая сводится к тому, что вы не можете иметь два одинаковых значения в столбце. Сообщение об ошибке должно сообщить вам, какой из ваших столбцов ограничен, я предполагаю "акции".

Ответ 6

Вероятно, это не лучшее решение, но следующее решение проблемы будет

Шаг 1: возьмите дамп базы данных, используя следующую команду

mysqldump -u root -p databaseName > databaseName.db

найдите строку

ENGINE=InnoDB AUTO_INCREMENT="*****" DEFAULT CHARSET=utf8;

Шаг 2: Измените ******* на максимальный id вашего идентификатора таблицы mysql. Сохраните это значение.

Шаг 3: снова используйте

mysql -u root -p databaseName < databaseName.db

В моем случае я получил эту ошибку, когда добавил ручную запись для ввода данных в другую таблицу. некоторые, как мы должны установить значение AUTO_INCREMENT в max id, используя команду mysql

Ответ 7

Восстановите базу данных с помощью cpanel поставщика домена.

Или посмотрите, не слили ли вы что-то в phpMyAdmin

Ответ 8

У меня была эта ошибка с mySQL с использованием DataNucleus и базы данных, созданной с помощью UTF8 - ошибка была вызвана этой аннотацией для первичного ключа:

@PrimaryKey
@Unique
@Persistent(valueStrategy = IdGeneratorStrategy.UUIDSTRING)
protected String id;

падение таблицы и ее восстановление с помощью исправления.

@PrimaryKey
@Unique
@Persistent(valueStrategy = IdGeneratorStrategy.UUIDHEX)
protected String id;