Я пытаюсь отладить приложение (под PostgreSQL) и наткнулся на следующую ошибку:
"текущая транзакция прервана, команды проигнорированы".
Насколько я понимаю, "транзакция" - это просто понятие, относящееся к базовому соединению с базой данных.
Если в соединении есть автоматическая фиксация "false", вы можете выполнять запросы через один и тот же оператор, если он не дает сбоя. В этом случае вы должны выполнить откат.
Если автоматическая фиксация имеет значение "true", это не имеет значения, если все ваши запросы считаются атомарными.
Используя auto commit false, я получаю вышеупомянутую ошибку от PostgreSQL, даже если просто
select * from foo
терпит неудачу, что заставляет меня спросить, при каких условиях SQLException является "транзакцией", считающейся недействительной, и должна откатываться назад или не использоваться для другого запроса?
с использованием MacOS 10.5, Java 1.5.0_16, PostgreSQL 8.3 с драйвером JDBC 8.1-407.jdbc3