我正在使用batchUpdate()
在表中插入多条记录。根据要求,如果在插入主键时存在重复值,则应使用最新接收到的数据对其进行更新,因此我试图ON DUPLICATE KEY UPDATE
在INSERT
语句中使用。当ON DUPLICATE KEY UPDATE
我使用单个插入时效果很好,但是当我batchupdate()
用于相同的查询时它会出错。错误如下:
测试用例:testVehicleTracking(com.em.ert.test.TrackingServiceTest): Caused an ERROR 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()。理想情况下应该是这样,因为据我所知,工作没有什么不同。
我应该怎么做才能实现这一目标?