이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 13.4. 응용 프로그램 수준에서의 토토 핫 일관성 검사버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.5. 데이터 일관성 검사 응용 프로그램 수준

독자가 때문에Postgres트랜잭션 격리 수준, 데이터에 관계없이 데이터를 잠그지 마십시오 한 트랜잭션에 의해 읽는 것은 다른 동시에 쓸 수 있습니다. 거래. 다시 말해, 행이에 반환되는 경우select행이 여전히 존재한다는 의미는 아닙니다 반환 시간 (즉, 현재 후 언젠가 거래 시작); 행이 수정되거나 삭제되었을 수 있습니다 이 트랜잭션이 이미 커밋 된 트랜잭션에 의해 시작. 행이 여전히 "지금"유효하더라도 현재 거래가 커밋되기 전에 변경 또는 삭제 또는 롤백.

그것에 대해 생각하는 또 다른 방법은 각 거래가 데이터베이스 내용의 스냅 샷 및 동시에 실행됩니다 트랜잭션은 다른 스냅 샷을 잘 볼 수 있습니다. 그래서 전체 "지금"의 개념은 어쨌든 다소 의심됩니다. 이것은 일반적으로 아닙니다 클라이언트 애플리케이션이 각각에서 격리 된 경우 큰 문제 다른 사람이지만 클라이언트가 외부 채널을 통해 통신 할 수있는 경우 데이터베이스는 심각한 혼란이 발생할 수 있습니다.

현재 행의 존재를 보장하고 보호하기 위해 동시 업데이트에 대해 사용해야합니다선택 update또는 적절한잠금 테이블진술. (업데이트 선택반환 된 행을 동시 업데이트에 대해 잠그는 동안잠금 테이블전체 테이블을 보호합니다.) 이것 응용 프로그램을 포팅 할 때를 고려해야합니다.Postgres다른 것 환경.

참고 :이전 버전 6.5Postgres사용 된 읽기 잠금 장치 등 6.5로 업그레이드 할 때 위의 고려 사항도 있습니다. (또는 더 높은) 이전Postgres버전.