我有下面的表cl:
id - int(10) primary key
contact - int(10)
list - int(10)在联系人和列表上有唯一的索引。当我按100条记录批量运行以下查询时:
INSERT INTO cl(list, contact) VALUES (?, ?) ON DUPLICATE KEY UPDATE cl.id = cl.id在高压下,它的失败率约为20%,错误如下:
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ON DUPLICATE KEY UPDATE cl.id = cl.id' at line 180%的查询运行得很好。当我使用相同的参数重新运行失败的查询时,仍然有20%的查询失败。
为什么有些查询会失败,然后在第二次执行时不会产生错误?
发布于 2016-09-27 23:15:45
将查询更改为
INSERT IGNORE INTO cl(list, contact) VALUES (?, ?)解决了问题。虽然还不清楚为什么mysql抛出java.sql.SQLSyntaxErrorException而不是更明确的东西。
https://stackoverflow.com/questions/39639524
复制相似问题