(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
.
Допустимые значения определены константами:
Возвращает объект класса 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();
?>