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

토토 베이

이름

토토 베이-테이블 토토 베이

시놉시스

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

설명

토토 베이 테이블테이블 레벨을 얻습니다 자물쇠, 충돌하는 자물쇠가 필요한 경우 대기 출시된. 만약에nowait지정되어 있습니다.토토 베이 테이블획득하기를 기다리지 않습니다 원하는 토토 베이 장치 : 즉시 획득 할 수없는 경우 명령 중단되고 오류가 발생합니다. 일단 얻어지면 토토 베이은입니다 현재 거래의 나머지 부분에 대해 개최됩니다. (없음토토 베이 해제 테이블명령; 자물쇠는 항상입니다 트랜잭션 종료시 출시.)

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

에서 거래를 실행할 때 비슷한 효과를 얻으려면반복 가능한 읽기또는SERIALIZALE격리 수준에서 실행해야합니다 그만큼토토 베이 테이블이전의 진술 모든 실행select또는 데이터 수정 진술. 에이반복 가능 읽다또는SERIALIZABLE트랜잭션 데이터가 첫 번째 일 때 동결됩니다select또는 데이터 수정 문이 시작됩니다. 에이토토 베이 테이블이후 거래에서 나중에 여전히 동시 글을 방지하지만 거래 읽기는 최신 커밋 된 것과 일치합니다 값.

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

토토 베이 모드 및 토토 베이 전략에 대한 자세한 정보 에서 찾을 수 있습니다PostgreSQL : 문서 : 9.2 : 명시 적 토토 꽁 머니.

매개 변수

이름

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

명령토토 베이 테이블 A, B;is 동등한토토 베이 테이블 A; 토토 베이 테이블 비;. 테이블은 순서대로 일대일로 잠겨 있습니다 에 지정됨토토 베이 테이블명령.

Lockmode

토토 베이 모드는이 토토 베이 충돌을 잠그는 것을 지정합니다 와 함께. 토토 베이 모드는에 설명되어 있습니다.섹션 13.3.

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

nowait

이를 지정합니다토토 베이 테이블충돌 토토 베이 장치가 해제 될 때까지 기다리지 말아야합니다. 지정된 토토 베이 장치를 즉시 획득 할 수없는 경우 기다리지 않고 거래가 중단됩니다.

노트

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

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

토토 베이 테이블만 처리합니다 테이블 레벨 토토 베이 장치이므로 포함 된 모드 이름Row는 모두 잘못된 이름입니다. 이 모드 이름은해야합니다 일반적으로 사용자의 의도를 나타내는대로 읽습니다. 잠긴 테이블 내에서 로우 레벨 토토 베이을 얻습니다. 또한,Row Exclusive모드는 공유 가능한 테이블 토토 베이입니다. 유지하다 모든 토토 베이 모드는 지금까지 동일한 의미를 가지고 있음을 명심하십시오. 처럼토토 베이 테이블걱정이 다릅니다 어떤 모드가 상충되는지에 대한 규칙에만. 을 위한 실제 로우 레벨 토토 베이을 얻는 방법에 대한 정보, 참조섹션 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.2 : 스포츠 토토 사이트 설정for 세부.

제외액세스 공유, 액세스 독점공유 독점 업데이트토토 베이 모드,PostgreSQL토토 베이 모드 및토토 베이 테이블구문은 그것과 호환됩니다 참석Oracle.