gpt4 book ai didi

java - 带有重复键更新的 MySQL Batchupdate()

转载 作者:行者123 更新时间:2023-11-29 06:53:33 26 4
gpt4 key购买 nike

我正在使用 batchUpdate() 在表中插入多条记录。根据要求,如果主键在插入时存在重复值,则应使用最新接收到的数据对其进行更新,因此我尝试在 INSERT< 中使用 ON DUPLICATE KEY UPDATE/声明。当我使用单个插入时,ON DUPLICATE KEY UPDATE 运行良好,但当我对同一查询使用 batchupdate() 时,它会出错。错误如下:

Testcase: testVehicleTracking(com.em.ert.test.TrackingServiceTest): Caused an ERROR PreparedStatementCallback; bad SQL grammar [INSERT INTO test_tracking (sino, material_id, material_type, vehicle_position, rundown_num, msg_type, msg_status, msg_timestamp) VALUES(?, ?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE]; nested exception is java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

我不明白为什么 ON DUPLICATE KEY UPDATE 不适用于 batchupdate()。理想情况下应该如此,因为据我所知,工作没有什么不同。

我应该怎么做才能实现这一目标?

最佳答案

您缺少列分配 col_name = value after ON DUPLICATE KEY UPDATE 子句。


来自MySQL官方reference manual :

13.2.6 INSERT Statement

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]

13.2.6.2 INSERT ... ON DUPLICATE KEY UPDATE Statemnt

关于java - 带有重复键更新的 MySQL Batchupdate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com