У меня есть запрос вставки для MySQL, который выглядит следующим образом:
INSERT INTO table (foo, bar, fooo, baar, etc) VALUES (?,?,?,?,?)
Он используется в скрипте для переноса некоторых столбцов и постоянно сталкивается с дублированием первичных ключей. (Старая база данных была ужасной и в плохом состоянии).
Есть ли способ, которым я могу просто сказать, чтобы заменить всю строку с ошибкой текущими значениями, полностью выбрасывая старые вещи? Я знаю, что есть команда ON DUPLICATE KEY UPDATE, но я не знаю, поможет ли она мне, поскольку все, что я видел, для этого используется увеличение.
ОТВЕТ: INSERT INTO table (foo, bar, fooo, baar, etc) VALUES (?,?,?,?,?) ON DUPLICATE KEY UPDATE foo=?, bar=?, fooo=?, baar=?, etc=?
Имейте в виду, что вам нужно снова добавить значения в ссылочный массив, чтобы учесть дополнительные вопросительные знаки.