У меня проблема с обновлением строки. У меня есть столбец под названием serialNum
с varchar(50) not null unique default null
Mysql Повторяющаяся запись 'xxxxxxxx' для ключа (уникальная) 'xxxxxxxxxx'
Когда я получаю данные ответа от компании-партнера, я буду обновлять строку в соответствии с (серийный NUM нашей компании) уникального serial_num
.
Иногда обновления произошел сбой из-за:
Duplicate entry 'xxxxxxxx' for key 'serialNum'
Но значение для обновления не существует, когда я искать всю таблицу. Это случается иногда, не всегда, примерно в 10 раз из 300.
Почему это происходит и как я могу его решить?
ниже запрос я использую, чтобы обновить:
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();
MySQL по умолчанию нечувствителен к регистру. Может быть, поэтому он находит дубликаты? – khelwood
Также будьте осторожны с ведущими/конечными пробелами –
Покажите нам полные запросы, которые вы используете для обновления и поиска. –