PreparedStatement
을 사용하여 MS SQL 데이터베이스에서 데이터의 하위 집합을 선택합니다. 결과 집합을 반복하면서 행을 업데이트하려고합니다. 순간 나는이 같은 것을 사용 :preparedStatement select를 사용하여 데이터베이스 업데이트 선택
prepStatement = con.prepareStatement(
selectQuery,
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
rs = prepStatement.executeQuery();
while(rs.next){
rs.updateInt("number", 20)
rs.updateRow();
}
데이터베이스가 올바른 값으로 업데이트,하지만 다음과 같은 예외 얻을 수있다 :
Optimistic concurrency check failed. The row was modified outside of this cursor.
내가 봤했습니다,하지만되지 않았습니다 문제에 대한 도움을 찾을 수 있습니다.
이 예외를 어떻게 방지합니까? 아니면 프로그램에서 내가 원하는 것을 수행했기 때문에 무시할 수 있습니까?
어떤 트랜잭션 격리 수준이 사용되고 있는지 알려줄 수 있습니까? – ordnungswidrig
... 정확한 쿼리와 정확히 일치하는 열은 무엇입니까? – vladr