gpt4 book ai didi

java - Mysql重复条目 'xxxxxxxx'键(唯一) 'xxxxxxxxxx'

转载 作者:行者123 更新时间:2023-11-29 01:02:48 26 4
gpt4 key购买 nike

我有一个更新行的问题。我有一个名为 serialNum 的列,其中 varchar(50) not null unique default null

当我得到合作公司的响应数据时,我将根据唯一的serial_num(我们公司的序列号)更新行。

有时更新失败是因为:

Duplicate entry 'xxxxxxxx' for key  'serialNum'

但是当我搜索整个表时,要更新的值不存在。它有时会发生,但并非总是如此,大约 300 次中有 10 次。

为什么会发生这种情况,我该如何解决?

下面是我用来更新的查询:

String updateQuery = "update phone set serialNum=?, Order_state=?, Balance=? where Serial_num=" + resultSet.get("jno_cli");
PreparedStatement presta = con.prepareStatement(updateQuery);
presta.setString(1, resultSet.get("oid_goodsorder"));
presta.setString(2, "order success");
presta.setFloat(3, Float.valueOf(resultSet.get("leftmoney")));
presta.executeUpdate();

最佳答案

我认为原因在 resultSet.get("oid_goodsorder") 你从哪里得到这个结果? 'oid_goodsorder' 是唯一的吗?你总是更新整个表格吗?
如果 oid_goodsorder 是唯一的,则可能在 serialNum 中有重复项,因为您不使用批量更新,而是分别更新每条记录,因此有可能:< br/>
之前:
序列号=11,22,33,44oid_goodsorder=44,11,22,33

它尝试将第一个 serialNum 更新为 44,但 44 是存在的!
但是如果你完成所有更新 serialNum 将是唯一的......

  1. 如果您想获取错误行,您可以禁用 set serialNum is not unique 并检查表是否复制 serialNum
  2. 如果您没有重复值,请尝试使用批量更新 Java - how to batch database inserts and updates

关于java - Mysql重复条目 'xxxxxxxx'键(唯一) 'xxxxxxxxxx',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30393071/

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