【发布时间】:2013-01-02 13:18:51
【问题描述】:
我正在使用batchUpdate() 在表中插入多条记录。根据要求,如果在插入主键时存在重复值,则应使用最新接收的数据对其进行更新,因此我试图在INSERT 语句中使用ON DUPLICATE KEY UPDATE。 ON DUPLICATE KEY UPDATE 在我使用单个插入时效果很好,但是当我使用 batchupdate() 进行相同的查询时它会出错。错误如下:
测试用例: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() 一起使用。理想情况下应该是这样,因为据我所知,工作没有什么不同。
我应该怎么做才能做到这一点?
【问题讨论】:
-
你能添加一些代码吗?
标签: java mysql spring batch-updates