CollectionFind::lockExclusive

(사용 가능한 버전 정보가 없으며 Git에만 있을 수 있음)

CollectionFind::lockExclusive — EXCLUSIVE LOCK으로 작업 실행


설명

public mysql_xdevapi\CollectionFind::lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind

문서만 잠그면 다른 트랜잭션은 문서가 잠길 때까지 문서 업데이트가 차단됩니다. 문서가 잠겨 있는 동안 다른 트랜잭션은 해당 문서를 업데이트하거나 SELECT ... LOCK IN SHARE MODE를 수행하거나 데이터를 읽을 수 없도록 차단됩니다. 특정 트랜잭션 격리 수준. 일관된 읽기는 읽기 보기에 있는 레코드에 설정된 잠금을 무시합니다.

이 기능은 동시성 문제를 피하기 위해 modify() 명령과 함께 직접적으로 유용합니다. 기본적으로 행 잠금을 통해 행에 대한 액세스를 직렬화합니다.


매개변수

lock_waiting_option
선택적 대기 옵션입니다. 기본적으로 MYSQLX_LOCK_DEFAULT입니다. 유효한 값은 다음 상수입니다.
  • MYSQLX_LOCK_DEFAULT
  • MYSQLX_LOCK_NOWAIT
  • MYSQLX_LOCK_SKIP_LOCKED

반환 값

추가 처리에 사용할 수 있는 CollectionFind 개체를 반환합니다.


Examples

예제 #1 mysql_xdevapi\CollectionFind::lockExclusive() 예제

                  
<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
  ->find("age > 50")
  ->lockExclusive()
  ->execute();

// ... do an operation on the object

// Complete the transaction and unlock the document
$session->commit();
?>