CollectionFind::lockExclusive
Execute operation with EXCLUSIVE LOCK
Description
Locks the document exclusively. As long as the document is locked, other transactions can't update the document, use SELECT ... LOCK IN SHARE MODE, or read the data in certain transaction isolation levels. Consistent reads ignore any locks set on the records that exist in the read view.
To avoid concurrency problems, it makes sense to use this function with the mysql_xdevapi\Collection::modify method. Essentially, this function uses row locks to serialise access to rows.
Parameters
lock_waiting_optionOptional waiting option. By default it is
MYSQLX_LOCK_DEFAULT. Valid values are these constants:MYSQLX_LOCK_DEFAULTMYSQLX_LOCK_NOWAITMYSQLX_LOCK_SKIP_LOCKED
Return Values
Returns a CollectionFind object that can be used for further processing.
Examples
mysql_xdevapi\CollectionFind::lockExclusive() example
<?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();
?>