이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 젠 토토버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

범퍼카 토토

이름

범퍼카 토토 - 거래 내부의 테이블을 명시 적으로 잠그십시오
범퍼카 토토 [표]이름범퍼카 토토 [표]이름[행 | 액세스] 공유 | 독점 모드
범퍼카 토토 [표]이름공유 행 독점 모드

입력

이름

범퍼카 토토 할 기존 테이블의 이름.

액세스 공유 모드

참고 :이 범퍼카 토토 모드는 자동으로 획득됩니다 테이블 위에 쿼리가 있습니다.

이것은 가장 제한적인 범퍼카 토토 모드입니다. 충돌합니다 액세스 독점 모드 만으로만. 보호에 사용됩니다 Concurrent에 의해 수정 된 테이블Alter Table, 드롭 테이블and진공명령.

행 공유 모드

참고 :자동으로 획득선택 ... 업데이트 용. 공유하는 동안 범퍼카 토토, 나중에 행 독점 범퍼카 토토으로 업그레이드 될 수 있습니다.

독점 및 액세스 독점 범퍼카 토토과 충돌합니다 모드.

ROW 독점 모드

참고 :자동으로 획득업데이트, 삭제삽입진술.

공유와의 충돌, 공유 Row 독점, 독점 및 독점 모드 액세스.

공유 모드

참고 :자동으로 획득색인 생성. 전체를 공유합니다 테이블.

ROW 전용 충돌, 공유 ROW 독점, 독점 및 액세스 독점 모드. 이 모드는 a 동시 업데이트에 대한 테이블

공유 행 독점 모드

참고 :이것은 독점 모드와 같지만 허용합니다 다른 사람의 행 범퍼카 토토을 공유하십시오.

ROW 독점, 공유, 공유 행과 충돌합니다 독점, 독점 및 액세스 독점 모드.

독점 모드

참고 :이 모드는 아직 더 제한적입니다 Row 독점을 공유하십시오. 모든 동시 행을 차단합니다 공유/선택 ... 업데이트 쿼리는

행 공유, 행 독점, 공유, 공유와 충돌합니다 Row 독점, 독점 및 액세스 독점 모드.

독점 모드 액세스

참고 :자동으로 획득Alter Table, 드롭 테이블, 진공진술. 이것 상충되는 가장 제한적인 범퍼카 토토 모드입니다 다른 모든 범퍼카 토토 모드 및 잠긴 테이블을 보호합니다. 동시 작업.

참고 :이 범퍼카 토토 모드는 또한 획득됩니다 자격이없는범퍼카 토토 테이블(즉, 명시 적 범퍼카 토토 모드 옵션이없는 명령).

출력

범퍼카 토토 테이블

범퍼카 토토이 성공적으로 적용되었습니다.

오류이름: 테이블이 존재하지 않습니다.

메시지 반환 IF이름존재하지 않습니다.

설명

범퍼카 토토 테이블동시 액세스를 제어합니다 거래 기간 동안 테이블에.Postgres항상 가장 제한적인 것을 사용합니다 가능할 때마다 범퍼카 토토 모드.범퍼카 토토 테이블더 제한적으로 필요한 경우가 제공됩니다 범퍼카 토토.

rdbms범퍼카 토토은 다음을 사용합니다 술어:

독점

다른 범퍼카 토토 장치가 존재하는 것을 방지하는 독점 범퍼카 토토 부여된.

share

다른 사람들이 범퍼카 토토을 공유 할 수 있습니다. 독점적 인 범퍼카 토토을 방지합니다.

Access

범퍼카 토토 테이블 스키마.

row

개별 행 범퍼카 토토.

참고 :독점 또는 공유가 지정되지 않은 경우 독점은 가정됩니다. 범퍼카 토토 장치는 기간 동안 존재합니다 거래.

예를 들어, 응용 프로그램은 read에서 트랜잭션을 실행합니다 헌신적 인 고립 수준과 존재를 보장해야합니다. 트랜잭션 기간 동안 테이블의 데이터. 달성합니다 이것은 전에 테이블 위의 공유 범퍼카 토토 모드를 사용할 수 있습니다. 쿼리. 이것은 데이터를 동시 변화로부터 보호합니다 데이터를 통해 테이블 위의 추가 읽기 작업을 제공합니다. 공유 범퍼카 토토 모드가 충돌하기 때문에 실제 현재 상태 작가가 획득 한 모든 행만 배타적 인 행로범퍼카 토토 테이블이름공유 모드진술이 기다립니다 동시 쓰기 작업이 커밋 또는 롤백까지.

참고 :실제 현재 상태에서 데이터를 읽으려면 직렬화 가능한 분리 레벨에서 거래를 실행합니다 DML을 실행하기 전에 범퍼카 토토 테이블 문을 실행해야합니다. 거래가 동시 변경 사항을 정의 할 때 진술 그 자체로 볼 수 있습니다.

거래가있는 경우 위의 요구 사항 외에 테이블에서 데이터를 변경 한 다음 Row 독점 범퍼카 토토을 공유하십시오. 두 개의 교착 상태 조건을 방지하기 위해 모드를 획득해야합니다. 동시 트랜잭션은 공유 모드에서 테이블을 잠그려고합니다. 그런 다음이 테이블의 데이터를 변경하십시오 (암시 적으로) 동시와 충돌하는 행 독점 범퍼카 토토 모드를 획득합니다 공유 범퍼카 토토.

교착 상태를 계속하려면 (두 번의 트랜잭션이 하나를 기다릴 때 위에서 제기 된 또 다른 문제, 두 가지 일반 규칙을 따라야합니다. 교착 상태 조건을 예방하려면 :

  • 트랜잭션은 동일한 오브젝트에 대한 범퍼카 토토 장치를 얻어야합니다. 같은 순서.

    예를 들어, 하나의 응용 프로그램이 R1 이상을 업데이트하는 경우 R2 행 (동일한 거래에서)을 업데이트 한 다음 두 번째. 업데이트하려면 응용 프로그램이 R2를 업데이트해서는 안됩니다. R1 행 후 (단일 트랜잭션). 대신, 그것은해야합니다 첫 번째 순서로 R1 및 R2를 업데이트합니다. 애플리케이션.

  • 트랜잭션은 충돌하는 범퍼카 토토 모드를 획득해야합니다 그들 중 하나가 자기 분류 인 경우에만 (즉, 보유 할 수 있습니다. 시간에만 하나의 거래). 다중 범퍼카 토토 모드 인 경우 관련된 거래는 항상 가장 많이 인수해야합니다 제한 모드 먼저.

    이 규칙에 대한 예는 이전에 이전에 제공되었습니다 Share Row 독점 모드 사용에 대해 논의 공유 모드.

참고 : Postgres교착 상태를 감지하고 최소한 한 번의 대기를 롤백합니다 교착 상태를 해결하기위한 거래.

노트

범퍼카 토토isPostgres언어 확장.

액세스 공유/독점 범퍼카 토토 모드 제외Postgres범퍼카 토토 모드 및범퍼카 토토 테이블구문이 호환됩니다 에있는 것들Oracle.

범퍼카 토토내부에서만 작동합니다 업무.

usage

갈 때 기본 키 테이블의 공유 범퍼카 토토을 설명합니다. 외국 키 테이블에 인서트를 수행합니다.

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

기본 키 테이블에서 공유 행 독점 범퍼카 토토을 가져 가면 삭제 작업 수행 :

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

호환성

SQL92

없음범퍼카 토토 테이블inSQL92대신 사용트랜잭션 설정동시성을 지정합니다 거래 수준. 우리는 그것을지지합니다. 보다SET자세한 내용.