MySQL запрос, дающий дублирующую ошибку ввода 1062

Почему этот запрос дает ошибку? Ошибка: Ошибка SQL (1062): Дублирующая запись '0' для ключа 'PRIMARY'

INSERT INTO `static_number_source` (`IDString`, `source`) VALUES
('RUS-001A', 'Thub'), #one
('RUS-001A', 'Fort'), #two
('RUS-002A', 'Thub'), #three
('RUS-002A', 'Fort'), #four
('RUS-003A', 'Thub'), #five
('RUS-003A', 'Fort'), #six
('RUS-004A', 'Thub'), #seven
('RUS-004A', 'Fort'); #eight

2 ответа

Решение

Вы можете либо изменить таблицу, чтобы добавить AUTO_INCREMENT в поле идентификатора, либо всегда указать идентификатор для вставок.

Для добавления AUTO_INCREMENT просто найдите наибольшее значение id в таблице и установите для него еще одно значение.

Кажется, IDString установлен как ПЕРВИЧНЫЙ. ПЕРВИЧНЫЙ должен иметь уникальную ценность. Если вы хотите использовать несколько значений с одним и тем же значением, используйте обычный неуникальный INDEX.

Кстати, если у вас есть УНИКАЛЬНЫЙ индекс на обоих полях, это аналогично:

('RUS-002A', 'Fort'), #three
('RUS-002A', 'Fort'), #four
Другие вопросы по тегам