젠 토토 : 문서 : 9.6 : 젠 토토 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.6 :무지개 토토 | 토토 사이트 순위 PostgreSQL : 문서 : 9.6 : SQL 명령 | 토토 베이 : 문서 : 9.6 : Move |
토토 캔 [테이블] [만]이름[ *] [, ...] [inLockmode모드] [nowait]여기서Lockmode중 하나입니다.액세스 공유 | 줄 공유 | Row Exclusive | 공유 업데이트 독점
| 공유 | Row Exclusive 공유 | 독점 | 액세스 독점
토토 캔 테이블충돌 토토 캔 장치가 해제되기 위해 필요한 경우 대기하여 테이블 레벨 토토 캔을 얻습니다. 만약에nowait지정되어 있습니다.토토 캔 테이블원하는 토토 캔 토토 캔 장치를 획득하기를 기다리지 않습니다. 즉시 획득 할 수없는 경우 명령이 중단되고 오류가 발생합니다. 일단 획득되면, 자물쇠는 현재 거래의 나머지 부분에 대해 유지됩니다. (없음토토 캔 해제 테이블명령; 자물쇠는 항상 트랜잭션 종료시 릴리스됩니다.)
테이블을 참조하는 명령에 대해 자동으로 토토 캔을 획득 할 때PostgreSQL항상 최소 제한적인 토토 캔 모드를 사용합니다.토토 캔 테이블보다 제한적인 토토 캔이 필요할 수있는 경우를 제공합니다. 예를 들어, 응용 프로그램이에서 트랜잭션을 실행한다고 가정합니다.Committed 읽기격리 수준이며 트랜잭션 기간 동안 테이블의 데이터가 안정적으로 유지되어야합니다. 이를 달성하려면공유쿼리 전에 테이블 위의 토토 캔 모드. 이렇게하면 동시 데이터 변경을 방지하고 테이블의 후속 읽기가 커밋 된 데이터에 대한 안정적인 견해를 보도록합니다..공유토토 캔 모드와 충돌합니다Row Exclusive작가가 인수 한 토토 캔,토토 캔 테이블이름공유 모드성명서는 동시 소지자가 될 때까지 기다릴 것입니다Row Exclusive모드 토토 캔 커밋 또는 롤백. 따라서 자물쇠를 얻으면 커밋되지 않은 쓰기가 없습니다. 또한 토토 캔 장치를 해제 할 때까지 시작할 수 없습니다.
에서 거래를 실행할 때 유사한 효과를 달성하려면반복 가능한 읽기또는SERIALIZALE격리 레벨,를 실행해야합니다토토 캔 테이블실행하기 전에 진술select또는 데이터 수정 문. 에이반복 가능한 읽기또는SERIALIZABLE트랜잭션의 데이터 관점이 첫 번째 일 때 동결됩니다select또는 데이터 수정 문이 시작됩니다. 에이토토 캔 테이블트랜잭션의 뒷부분은 여전히 동시 쓰기를 방지 할 것입니다. 그러나 거래 읽기가 최신 커밋 된 값에 해당하는지 확인하지는 않습니다.
이런 종류의 트랜잭션이 표에서 데이터를 변경하려면 사용해야합니다공유 ROW 독점대신 토토 캔 모드공유모드. 이를 통해 한 번에 하나의 트랜잭션 만 실행할 수 있습니다. 이 없으면 교착 상태가 가능합니다. 두 가지 거래가 모두 인수 할 수 있습니다공유모드를 획득 할 수 없습니다Row Exclusive실제로 업데이트를 수행하는 모드. (거래의 자체 자물쇠는 절대 충돌하지 않으므로 거래가 인수 할 수 있습니다Row Exclusive보유 할 때 모드공유모드 - 그러나 다른 사람이 보유하고 있다면공유모드.) 교착 상태를 피하려면 모든 트랜잭션이 동일한 순서로 동일한 오브젝트에서 토토 캔을 획득하고 단일 객체에 대해 여러 토토 캔 모드가 관련되면 항상 가장 제한적인 모드를 획득해야합니다..
토토 캔 모드 및 토토 캔 전략에 대한 자세한 정보는 찾을 수 있습니다.PostgreSQL : 문서 : 9.6 : 명시 적 스포츠 토토 사이트.
기존 테이블의 이름 (선택적으로 스키마 자격). 만약에전용테이블 이름 앞에 지정되어 있으며 해당 테이블 만 잠겨 있습니다. 만약에전용지정되지 않은 표는 테이블과 모든 후손 테이블 (있는 경우)이 잠겨 있습니다. 선택적으로,*테이블 이름 뒤에 지정하여 자손 테이블이 포함되어 있음을 명시 적으로 표시 할 수 있습니다.
명령토토 캔 테이블 A, B;토토 캔 테이블 A; 토토 캔 테이블 B;. 테이블은에 명시된 순서대로 1 단을 잠겨 있습니다.토토 캔 테이블명령.
토토 캔 모드는이 토토 캔이 충돌하는 것을 지정합니다. 토토 캔 모드는에 설명되어 있습니다.PostgreSQL : 문서 : 9.6 : 명시 적 스포츠 토토 사이트.
토토 캔 모드가 지정되지 않은 경우액세스 독점가장 제한적인 모드가 사용됩니다.
이를 지정합니다토토 캔 테이블충돌 토토 캔 장치가 해제 될 때까지 기다리지 말아야합니다. 대기하지 않고 지정된 토토 캔 토토 캔 장치를 즉시 획득 할 수없는 경우 거래가 중단됩니다..
토토 캔 테이블 ... 액세스 공유 모드에서요구select대상 테이블의 권한.토토 캔 테이블 ... 행 독점 모드요구삽입, 업데이트, 삭제또는Truncate대상 테이블의 권한. 다른 모든 형태의토토 캔테이블 레벨 필요업데이트, 삭제또는Truncate특권.
토토 캔 테이블트랜잭션 블록 외부에서는 쓸모가 없습니다. 토토 캔은 명세서의 완료에만 유지됩니다. 그러므로PostgreSQLif 오류를보고합니다.토토 캔는 트랜잭션 블록 외부에서 사용됩니다. 사용PostgreSQL : 문서 : 9.6 : 토토and스포츠 토토 : 문서 : 9.6 : Commit(또는롤 토토 : 문서 : 9.6 : 롤백) 트랜잭션 블록을 정의하려면
토토 캔 테이블테이블 레벨 토토 캔 만 처리하므로 관련 모드 이름Row는 모두 잘못된 이름입니다. 이러한 모드 이름은 일반적으로 잠긴 테이블 내에서로드 레벨 토토 캔을 획득하려는 의도를 나타내는 것으로 읽어야합니다. 또한,Row Exclusive모드는 공유 가능한 테이블 토토 캔 장치입니다. 모든 토토 캔 모드는와 동일한 의미론을 가지고 있음을 명심하십시오.토토 캔 테이블| 어떤 모드가 어느 모드가 상충되는지에 대한 규칙에 따라 다릅니다. 실제 행 수준 토토 캔을 얻는 방법에 대한 정보는 참조섹션 13.3.2and the토토 캔 조항inselect참조 문서.
a공유기본 키 테이블에서 삽입 할 때 외국 키 테이블에 삽입 할 때 잠그십시오 :
작업 시작; 공유 모드의 토토 캔 테이블 필름; 필름에서 ID를 선택하십시오 여기서 name = '스타 워즈 : 에피소드 I- 팬텀 메나 스'; - 레코드가 반환되지 않은 경우 롤백을하십시오 films_user_comments 값에 삽입하십시오 (_id_, '좋아요! 너무 오래 기다리고있었습니다!'); 일을 커밋;
a공유 ROW 독점삭제 작업을 수행 할 때 기본 키 테이블을 잠그십시오 :
작업 시작; 공유 행 독점 모드의 토토 캔 테이블 필름; id가있는 Films_user_comments에서 삭제하십시오 (등급 <5 인 필름에서 ID를 선택); 등급 <5 인 필름에서 삭제; 일을 커밋;
없음토토 캔 테이블대신 사용하는 SQL 표준에서거래 설정거래에서 동시성 수준을 지정하려면PostgreSQL그것을지지합니다. 보다PostgreSQL : 문서 : 9.6 : 토토 설정자세한 내용.
제외액세스 공유, 액세스 독점및공유 업데이트 독점토토 캔 모드,PostgreSQL토토 캔 모드 및토토 캔 테이블구문은에있는 것과 호환됩니다.Oracle.