Execute operation with EXCLUSIVE LOCK

- « CollectionFind::limit

- CollectionFind::lockShared »

- PHP Manual
- mysql_xdevapi\CollectionFind
- Execute operation with EXCLUSIVE LOCK

# CollectionFind::lockExclusive

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

CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK

### Description

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

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_option`

  Optional waiting option. By default it is `MYSQLX_LOCK_DEFAULT`. Valid values are these constants:

  - `MYSQLX_LOCK_DEFAULT`

  - `MYSQLX_LOCK_NOWAIT`

  - `MYSQLX_LOCK_SKIP_LOCKED`

### Return Values

Returns a CollectionFind object that can be used for further processing.

### Examples

Example #1 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();
    ?>