Сразу хочу сказать, из-за своей позиции я не могу вставить полный код. Поэтому я сделаю все возможное, чтобы символизировать код и перейти к сути.
Запрограммировано в: Python.
Проще говоря, я получаю Duplicate Key Error. Я изучил другие вопросы, которые были подняты по этому поводу, и, насколько мне известно, я следую предложению, которое дали эти ответы.
Фрагмент структуры таблицы:
CREATE TABLE `BAR_TABLE` (
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`foo` tinytext,
`bar` tinytext,
`uuid` varchar(25) NOT NULL,
PRIMARY KEY (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
В этом случае 'uuid' является ПЕРВИЧНЫМ, так как уже существует набор данных, в который он входит, этот uuid всегда уникален (если он не существует, тогда он обновление информации о потенциале)
SQL Фрагмент
INSERT INTO BAR_TABLE (
foo,
bar,
uuid
) VALUES (
%(foo)s,
%(bar)s,
%(uuid)s
) ON DUPLICATE KEY UPDATE
foo = VALUES(foo),
bar = VALUES(bar)
Поэтому причина, по которой SQL выглядит так, заключается в том, что я использую executemany (). А также данные, которые входят в это Python словарь. Таким образом, это позволяет ему присваивать все значения в словарных данных оператору SQL. Затем все это перемещается в БД с помощью executemany ().
Элемент, который вызывает дублирующую запись, фактически находится в таблице. Мне удалось запустить его пару раз, а затем в какой-то момент во время тестирования он обнаружил эту ошибку и не прошел мимо нее.
Очевидно, я что-то не понимаю. Я неправильно понимаю, как работает ПЕРВИЧНЫЙ КЛЮЧ? Или какой ключ использует ON DUPLICATE KEY UPDATE?