(No version information available, might only be in Git)
CollectionFind::lockExclusive — Выполняет операцию с EXCLUSIVE LOCK
$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();
?>