2016-08-03 6 views
0

업데이트 쿼리가 호출 될 때 레코드가 업데이트되는지 여부를 Java에서 어떻게 알 수 있습니까? executeUpdate()에서 반환 유형 int를 시도했지만 쿼리가 실행될 때마다 1이 표시됩니다. 즉, 레코드가 변경되거나 값이 1보다 큰 값을 반환하는 경우입니다. postgresql에서 Java 메소드 호출을위한 트리거가있을 경우 ( ) 도움이 될 것입니다. 도와주세요.Java에서 postgres 데이터베이스의 레코드가 업데이트되는지 확인

+0

* 업데이트 * 란 무엇을 의미합니까? 일부 컬럼 값이 변경되면? –

+0

업데이트의 영향을받는 열을 알고 싶습니다. –

+0

@AntonyJoslin 이유는 무엇입니까? 당신이 찾고있는 최종 결과는 무엇입니까? 일부 칼럼이 업데이트되었다는 정보로 무엇을 할 것입니까? – Kayaman

답변

0

executeUpdate(Query) 당신이 행의 데이터인지 알고 싶다면 아무 것도

1

를 업데이트하지 않는 경우 행 수는 0 될 것

int rows = statement.executeUpdate("Your_query"); 
System.out.println("number of rows updated "+rows); 

업데이트 반환합니다 업데이트의 결과로을 변경하면 WHERE 절에 매개 변수를 전달하여 UPDATE foo SET bar = $1, baz = $2 WHERE bar <> $1 AND baz <> $2 AND id = $3과 같은 문을 작성해야합니다. 예를 들어 id을 기반으로 한 행의 두 열을 업데이트하려고한다고 가정합니다.

그런 다음 WHERE 절이 일치하는 유일한 방법은 수행 할 실제 업데이트가있는 경우이며, 반환 값을 사용하여 업데이트가 발생했는지 여부를 확인할 수 있습니다.

또 다른 가능성은 코드를 리팩터링하여 걱정할 필요가 없지만 더 자세히 설명해야합니다.

관련 문제