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