CollectionFind::lockExclusive

(No version information available, might only be in Git)

CollectionFind::lockExclusiveВыполняет операцию с EXCLUSIVE LOCK

Описание

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

Накладывает на документ исключительную блокировку. До тех пор, пока документ заблокирован, другие транзакции не могут обновлять документ, выполнять выражения SELECT ... LOCK IN SHARE MODE или читать данные на отдельных уровнях изоляции транзакций. Согласованные чтения игнорируют любые блокировки, установленные для записей, которые существуют в представлении чтения.

Чтобы не было проблем с конкурентным доступом, имеет ссмысл вызывать этот метод совместно с методом mysql_xdevapi\Collection::modify(). По существу, эта функция использует блокировки строк для сериализации доступа к строкам.

Список параметров

lock_waiting_option

Дополнительная опция ожидания. Значение по умолчанию — MYSQLX_LOCK_DEFAULT. Допустимые значения определены константами:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Возвращаемые значения

Возвращает объект класса CollectionFind, с которым можно будет работать далее.

Примеры

Пример #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();

// ... выполняем операцию с объектом

// Завершаем транзакцию и разблокируем документ
$session->commit();
?>
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top