Я использую batchUpdate()
для вставки нескольких записей в таблицу. В соответствии с требованием, если есть дублирующее значение для первичного ключа при вставке, оно должно быть обновлено с последними полученными данными, поэтому я пытался использовать ON DUPLICATE KEY UPDATE
в заявлении INSERT
. ON DUPLICATE KEY UPDATE
работает хорошо, когда я использую одну вставку, но она дает ошибку, когда я использую batchupdate()
для того же запроса. Ошибка заключается в следующем:MySQL Batchupdate() с ON DUPLICATE KEY UPDATE
TestCase: testVehicleTracking (com.em.ert.test.TrackingServiceTest): вызвал ошибку PreparedStatementCallback; плохая грамматика SQL [INSERT INTO test_tracking (sino, material_id, material_type, vehicle_position, rundown_num, msg_type, msg_status, msg_timestamp) VALUES (?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE]; Вложенное исключение - это java.sql.BatchUpdateException: у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «» в строке 1
Я не получаю, почему ON DUPLICATE KEY UPDATE
не работает с batchupdate(). В идеале это должно быть, потому что в работе нет ничего другого, насколько я вижу.
Что я должен делать для достижения этого?
Не могли бы вы добавить код? –