Если у нас есть таблица с 10 строками, и мы дважды выполняем этот запрос, мы получаем неправильное количество затронутых строк во второй раз.JDBC возвращает неправильное количество затронутых строк.
Statement st = open();
st.executeUpdate("UPDATE `tickets` SET price=1000"); // return 10
st.executeUpdate("UPDATE `tickets` SET price=1000"); // return 10
Очевидно, что это не правильно, потому что в первом запросе цена всех строк обновляется до 1000, а во втором ничего запроса на самом деле изменения, но он снова возвращается 10!
Как я могу получить количество реально обновляемых строк?
Технически базы данных могут (и делать) обновлять строку в любом случае, даже если она имеет такое же значение (поскольку оно проще , или сравнение старого и нового значения может быть дороже, чем просто его обновление). –
нет, если мы выполним эти запросы в командной строке mysql во втором запросе mysql return 0 затронутых строк – rezachess
Мой комментарий был предназначен как указание на то, что ваше ожидание не распространяется на все системы баз данных. –