LOCK — 테이블 잠그기
토토 꽁 머니 [ 표 ] [ 전용 ]이름[ * ] [, ...] [ IN토토 꽁 머니 모드모드 ] [ 지금 대기 ]어디에서토토 꽁 머니 모드다음 중 하나입니다:액세스 공유 | 행 공유 | 행 독점 | 업데이트 독점 공유 | 공유 | 공유 행 독점 | 독점 | 액세스 독점
락 테이블테이블 수준 토토 꽁 머니을 획득하고 필요한 경우 충돌하는 토토 꽁 머니이 해제될 때까지 기다립니다. 만일NOWAIT지정되었습니다.락 테이블원하는 토토 꽁 머니을 획득할 때까지 기다리지 않습니다. 즉시 획득할 수 없는 경우 명령이 중단되고 오류가 발생합니다. 토토 꽁 머니을 획득한 후에는 현재 트랜잭션의 나머지 기간 동안 토토 꽁 머니이 유지됩니다. (없습니다테이블 토토 꽁 머니 해제명령; 토토 꽁 머니은 항상 트랜잭션 종료 시 해제됩니다.)
뷰가 잠기면 뷰 정의 쿼리에 나타나는 모든 관계도 동일한 토토 꽁 머니 모드로 반복적으로 잠깁니다.
테이블을 참조하는 명령에 대해 자동으로 토토 꽁 머니을 획득할 때포스트그레SQL항상 가능한 최소 제한 토토 꽁 머니 모드를 사용합니다.락 테이블더 제한적인 토토 꽁 머니이 필요한 경우를 제공합니다. 예를 들어, 애플리케이션이 다음에서 트랜잭션을 실행한다고 가정합니다.읽기 커밋됨격리 수준이며 트랜잭션 기간 동안 테이블의 데이터가 안정적으로 유지되도록 보장해야 합니다. 이를 달성하기 위해 다음을 얻을 수 있습니다.공유쿼리하기 전에 테이블에 대한 토토 꽁 머니 모드입니다. 이렇게 하면 동시 데이터 변경을 방지하고 테이블의 후속 읽기에서 커밋된 데이터의 안정적인 보기를 볼 수 있습니다.공유토토 꽁 머니 모드가 다음과 충돌합니다.행 독점작가가 토토 꽁 머니을 획득했으며 귀하는락 테이블진술서는 동시 보유자가 있을 때까지 기다립니다.이름공유 모드에서행 독점모드는 커밋 또는 롤백을 잠급니다. 따라서 일단 토토 꽁 머니을 획득하면 아직 커밋되지 않은 쓰기가 없습니다. 또한 토토 꽁 머니을 해제할 때까지는 아무것도 시작할 수 없습니다.
다음에서 트랜잭션을 실행할 때 유사한 효과를 얻으려면반복 가능한 읽기또는직렬화 가능격리 수준에서는 다음을 실행해야 합니다.락 테이블실행 전 명령문선택또는 데이터 수정문. 갑반복 가능한 읽기또는직렬화 가능트랜잭션의 데이터 보기는 첫 번째 때 동결됩니다.선택또는 데이터 수정 문이 시작됩니다. 갑락 테이블나중에 트랜잭션에서는 여전히 동시 쓰기를 방지하지만 트랜잭션이 읽는 내용이 최근에 커밋된 값과 일치하는지 확인하지는 않습니다.
이런 종류의 트랜잭션이 테이블의 데이터를 변경하려면 다음을 사용해야 합니다.행 독점 공유대신 토토 꽁 머니 모드공유모드. 이렇게 하면 이 유형의 트랜잭션이 한 번에 하나만 실행됩니다. 이것이 없으면 교착 상태가 발생할 수 있습니다. 두 트랜잭션이 모두 획득할 수 있습니다.공유모드, 그 다음에는 획득할 수 없습니다행 독점모드를 사용하여 실제로 업데이트를 수행합니다. (트랜잭션 자체 토토 꽁 머니은 충돌하지 않으므로 트랜잭션이 토토 꽁 머니을 획득할 수 있습니다.행 독점유지 시 모드공유모드 - 그러나 다른 사람이 보유하고 있는 경우에는 그렇지 않습니다.공유모드.) 교착 상태를 방지하려면 모든 트랜잭션이 동일한 객체에 대해 동일한 순서로 토토 꽁 머니을 획득하는지 확인하고, 단일 객체에 대해 여러 토토 꽁 머니 모드가 관련된 경우 트랜잭션은 항상 가장 제한적인 모드를 먼저 획득해야 합니다.
토토 꽁 머니 모드 및 토토 꽁 머니 전략에 대한 자세한 내용은 다음에서 찾을 수 있습니다.PostgreSQL : 문서 : 17 : 13.3. 명시 적 토토 사이트 추천.
이름잠글 기존 테이블의 이름(선택적으로 스키마 한정). 만일만14655_14724만이 지정되지 않으면 테이블과 모든 하위 테이블(있는 경우)이 잠깁니다. 선택적으로,*테이블 이름 뒤에 지정하여 하위 테이블이 포함되어 있음을 명시적으로 나타낼 수 있습니다.
명령어토토 꽁 머니 테이블 a, b;다음과 동일함락 테이블 a; 토토 꽁 머니 테이블 b;. 테이블은에 지정된 순서대로 하나씩 잠깁니다.락 테이블명령.
토토 꽁 머니 모드토토 꽁 머니 모드는 이 토토 꽁 머니이 충돌하는 토토 꽁 머니을 지정합니다. 토토 꽁 머니 모드는 다음에 설명되어 있습니다.PostgreSQL : 문서 : 17 : 13.3. 명시 적 토토 사이트 추천.
토토 꽁 머니 모드가 지정되지 않은 경우접속 독점15667_15706
지금 대기 중다음을 지정함락 테이블충돌하는 토토 꽁 머니이 해제될 때까지 기다리면 안 됩니다. 지정된 토토 꽁 머니을 기다리지 않고 즉시 획득할 수 없는 경우 트랜잭션이 중단됩니다.
테이블을 잠그려면 사용자는 지정된 테이블에 대한 올바른 권한을 가지고 있어야 합니다.토토 꽁 머니 모드. 사용자가 다음과 같은 경우유지, 업데이트, 삭제또는잘라내기테이블에 대한 권한, 모두토토 꽁 머니 모드허용됩니다. 사용자가 다음과 같은 경우삽입테이블에 대한 권한,행 독점 모드(또는 설명된 대로 덜 충돌하는 모드PostgreSQL : 문서 : 17 : 13.3. 명시 적 토토 사이트 추천)이 허용됩니다. 사용자가 다음과 같은 경우선택테이블에 대한 권한,액세스 공유 모드허용됩니다.
보기에 대한 토토 꽁 머니을 수행하는 사용자는 보기에 대한 해당 권한을 가지고 있어야 합니다. 또한 기본적으로 뷰 소유자는 기본 기본 관계에 대한 관련 권한을 가지고 있어야 하지만 토토 꽁 머니을 수행하는 사용자에게는 기본 기본 관계에 대한 권한이 필요하지 않습니다. 그러나 뷰에 다음이 있는 경우security_invoker다음으로 설정됨사실(참조보기 만들기), 뷰 소유자가 아닌 토토 꽁 머니을 수행하는 사용자는 기본 기본 관계에 대한 관련 권한을 가지고 있어야 합니다.
락 테이블은 트랜잭션 블록 외부에서는 쓸모가 없습니다. 토토 꽁 머니은 명령문이 완료될 때까지만 유지됩니다. 그러므로PostgreSQL다음의 경우 오류를 보고합니다.토토 꽁 머니은 트랜잭션 블록 외부에서 사용됩니다. 사용시작그리고커밋(또는롤백) 거래 블록을 정의합니다.
락 테이블테이블 수준 토토 꽁 머니만 처리하므로 관련된 모드 이름은ROW모두 잘못된 이름입니다. 이러한 모드 이름은 일반적으로 잠긴 테이블 내에서 행 수준 토토 꽁 머니을 획득하려는 사용자의 의도를 나타내는 것으로 읽어야 합니다. 또한,행 독점모드는 공유 가능한 테이블 토토 꽁 머니입니다. 지금까지 모든 토토 꽁 머니 모드는 동일한 의미를 갖는다는 점을 명심하세요.락 테이블은 어떤 모드가 어떤 모드와 충돌하는지에 대한 규칙만 다릅니다. 실제 행 수준 토토 꽁 머니을 획득하는 방법에 대한 자세한 내용은 다음을 참조하세요.섹션 13.3.2그리고토토 꽁 머니 조항에서선택문서.
a을 얻으세요공유외래 키 테이블에 삽입을 수행할 때 기본 키 테이블을 잠급니다.
작업 시작;
공유 모드에서 토토 꽁 머니 테이블 영화;
영화에서 ID 선택
WHERE name = '스타워즈: 에피소드 I - 보이지 않는 위협';
-- 레코드가 반환되지 않은 경우 ROLLBACK을 수행합니다.
film_user_comments 값에 삽입하세요.
(_id_, '좋아요! 너무 오랫동안 기다리고 있었어요!');
작업 커밋;
가져가세요공유 행 독점삭제 작업을 수행할 때 기본 키 테이블을 잠급니다.
작업 시작;
공유 행 독점 모드의 토토 꽁 머니 테이블 영화;
ID가 있는 곳의film_user_comments에서 삭제
(등급 < 5인 영화에서 ID 선택);
등급이 < 5인 영화에서 삭제하세요.
작업 커밋;
없습니다락 테이블대신 SQL 표준에서거래 설정트랜잭션의 동시성 수준을 지정합니다.PostgreSQL그것도 지원합니다; 참조거래 설정자세한 내용은.
제외액세스 공유, 접속 독점그리고업데이트 독점 공유토토 꽁 머니 모드, 그PostgreSQL토토 꽁 머니 모드 및락 테이블구문은 다음에 있는 구문과 호환됩니다.오라클.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.