TableSelect::lockExclusive

EXCLUSIVE LOCK を実行する

説明

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

EXCLUSIVE LOCK 付きで読み取り操作を実行します。 一度にアクティブになれるロックはひとつだけです。

パラメータ

lock_waiting_option

オプションで指定できる、ロック待ちのオプション。 デフォルトは MYSQLX_LOCK_DEFAULT です。 有効な値は以下のとおりです:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

戻り値

TableSelect オブジェクトを返します。

例1 mysql_xdevapi\TableSelect::lockExclusive の例

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
  ->lockExclusive(MYSQLX_LOCK_NOWAIT)
  ->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

上の例の出力は、 たとえば以下のようになります。

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)