이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 롤 토토 꽁 머니버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

롤 토토

이름

롤 토토-테이블 롤 토토

시놉시스

롤 토토 [표] [만]이름[ *] [, ...] [inLockmode모드] [nowait]여기서Lockmode중 하나입니다.액세스 공유 | 줄 공유 | Row Exclusive | 공유 업데이트 독점
    | 공유 | Row Exclusive 공유 | 독점 | 액세스 독점

설명

롤 토토 테이블테이블 레벨 롤 토토을 얻습니다. 충돌하는 롤 토토 장치가 해제되기 위해 필요한 경우 대기합니다. 만약에nowait지정되어 있습니다.롤 토토 테이블원하는 것을 획득하기를 기다리지 않습니다 롤 토토 : 즉시 획득 할 수없는 경우 명령이 중단됩니다. 오류가 방출됩니다. 일단 얻어지면 롤 토토 장치가 고정됩니다 현재 거래의 나머지. (없음롤 토토 해제 테이블명령; 자물쇠는 항상 릴리스됩니다 거래 종료.)

그 참조 명령에 대해 롤 토토을 자동으로 획득 할 때 테이블,postgresql항상 사용합니다 최소 제한적인 롤 토토 모드 가능.롤 토토 테이블보다 제한적으로 필요한 경우를 제공합니다 롤 토토. 예를 들어, 응용 프로그램이 트랜잭션을 실행한다고 가정합니다 읽기 커밋 된 격리 수준이며 데이터가 트랜잭션 기간 동안 테이블은 안정적으로 유지됩니다. 에게 이것을 얻을 수 있습니다공유롤 토토 쿼리 전에 테이블 위의 모드. 이것은 동시를 방지합니다 데이터가 변경되고 테이블의 후속 읽기가 안정적인 것을 참조하십시오. 헌신적 인 데이터의 관점share롤 토토 모드는와 충돌합니다.Row Exclusive롤 토토 작가가 습득하고롤 토토 테이블이름공유 모드진술 동시 소지자가까지 기다릴 것입니다.행 독점적인모드 롤 토토 커밋 또는 롤백. 따라서 일단 당신 자물쇠를 얻으십시오. 커밋되지 않은 글은 없습니다. 또한 롤 토토 장치를 해제 할 때까지 시작할 수 없습니다.

에서 거래를 실행할 때 비슷한 효과를 얻으려면반복 가능한 읽기또는SERIALIZABLE격리 수준에서 실행해야합니다 그만큼롤 토토 테이블실행하기 전에 문 어느select또는 데이터 수정 문. 에이반복 가능한 읽기또는SERIALIZABLE트랜잭션의 데이터 관점이 될 것입니다 첫 번째 일 때 냉동select또는 데이터 수정 명령문이 시작됩니다. 에이롤 토토 테이블트랜잭션 후반에도 동시를 방지합니다 쓰기 - 그러나 거래가 읽는 내용이 최신 커밋 된 값에 해당합니다.

이런 종류의 트랜잭션이 테이블, 그런 다음 사용해야공유 행 독점적인대신 롤 토토 모드공유모드. 이것은이 유형의 하나의 트랜잭션 만 시간. 이것이 없으면 교착 상태가 가능합니다. 두 가지 거래가 가능합니다 둘 다 인수공유모드 획득 할 수 없습니다Row Exclusive모드 실제로 업데이트를 수행합니다. (거래 자체 자물쇠는 절대 충돌하지 않으므로 거래는 획득 할 수 있습니다Row Exclusive보유 할 때 모드공유모드 - 그러나 다른 사람이 보유하는 경우공유모드.) 교착 상태를 피하려면 모든 것을 확인하십시오 트랜잭션은 동일한 순서로 동일한 객체에 대한 롤 토토을 획득하고 그리고 단일 객체에 여러 개의 롤 토토 모드가 관련되어 있으면 거래는 항상 가장 제한적인 모드를 얻어야합니다 첫 번째.

롤 토토 모드 및 롤 토토 전략에 대한 추가 정보는 에서 찾을 수 있습니다.PostgreSQL : 문서 : 9.3 : 명시 적 윈 토토.

매개 변수

이름

기존 테이블의 이름 (선택적으로 스키마 자격) 잠그다. 만약에전용앞에 지정되어 있습니다 테이블 이름, 그 테이블 만 잠겨 있습니다. 만약에전용는 지정되지 않았으며 표 및 모든 것입니다 자손 테이블 (있는 경우)이 잠겨 있습니다. 선택적으로,*테이블 이름으로 지정할 수 있습니다 명시 적으로 자손 테이블이 포함되어 있음을 나타냅니다.

명령롤 토토 테이블 A, B;is 동등한롤 토토 테이블 A; 롤 토토 테이블 B;. 테이블은에 명시된 순서대로 1 단을 잠겨 있습니다.롤 토토 테이블명령.

Lockmode

롤 토토 모드는이 롤 토토이 충돌하는 것을 지정합니다. 롤 토토 모드는에 설명되어 있습니다.PostgreSQL : 문서 : 9.3 : 명시 적 윈 토토.

롤 토토 모드가 지정되지 않은 경우액세스 독점적인가장 제한적인 모드가 사용됩니다.

nowait

이를 지정합니다롤 토토 테이블충돌하는 롤 토토이 해제 될 때까지 기다리십시오 : 지정된 경우 롤 토토 (들)은 대기하지 않고 즉시 획득 할 수 없습니다 거래가 중단됩니다.

노트

롤 토토 테이블 ... 액세스 공유 모드요구select대상의 특권 테이블. 다른 모든 형태의롤 토토요구 테이블 레벨업데이트, 삭제또는Truncate특권.

롤 토토 테이블외부에서는 쓸모가 없습니다 트랜잭션 블록 : 롤 토토은 진술의 완성. 그러므로PostgreSQL오류를보고합니다롤 토토트랜잭션 블록 외부에서 사용됩니다. 사용롤 토토 : 문서 : 9.3 : 시작커밋(또는롤백) 거래를 정의하려면 차단하다.

롤 토토 테이블테이블 레벨 만 처리합니다 롤 토토, 그래서 포함 모드 이름Row는 모두 잘못된 이름입니다. 이러한 모드 이름은 일반적으로 다음과 같이 읽어야합니다 사용자가 행 수준 롤 토토을 획득하려는 의도를 나타냅니다. 잠긴 테이블 내에서. 또한,행 독점적인모드는 공유 가능한 테이블 롤 토토입니다. 그것을 명심하십시오 모든 롤 토토 모드는와 동일한 의미를 가지고 있습니다.롤 토토 테이블는 규칙에 따라 다릅니다 어떤 모드가 상충되는지에 대해. 방법에 대한 정보 실제 로우 레벨 롤 토토 획득, 참조섹션 13.3.2and the롤 토토 조항inselect참조 선적 서류 비치.

예제

a공유기본 키를 잠그십시오 삽입물을 외국 키 테이블에 수행 할 때 테이블 :

작업 시작;
공유 모드의 롤 토토 테이블 필름;
필름에서 ID를 선택하십시오
    여기서 name = '스타 워즈 : 에피소드 I- 팬텀 메나 스';
- 레코드가 반환되지 않은 경우 롤백을하십시오
films_user_comments 값에 삽입하십시오
    (_id_, '좋아요! 너무 오래 기다리고있었습니다!');
일을 커밋;

a공유 ROW 독점롤 토토 a 기본 키 테이블 삭제 작업을 수행 할 때 :

작업 시작;
공유 행 독점 모드의 롤 토토 테이블 필름;
id가있는 Films_user_comments에서 삭제하십시오
    (등급 <5 인 필름에서 ID를 선택);
등급 <5 인 필름에서 삭제;
일을 커밋;

호환성

없음롤 토토 테이블SQL에서 대신 사용하는 표준세트 거래거래에서 동시성 수준을 지정하려면PostgreSQL그것을지지합니다. 보다PostgreSQL : 문서 : 9.3 : 범퍼카 토토 설정세부.

제외액세스 공유, 액세스 독점공유 독점 업데이트롤 토토 모드,PostgreSQL롤 토토 모드 및롤 토토 테이블구문은 현재와 호환됩니다 안에Oracle.