CollectionFind::lockExclusive

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

CollectionFind::lockExclusiveExecuta a operação com EXCLUSIVE LOCK

Descrição

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

Trava o documento de forma exclusiva. Enquanto o documento estiver travado, outras transações não podem atualizá-lo, use SELECT ... LOCK IN SHARE MODE, ou leia os dados em certos níveis de isolamento de transação. Leituras consistentes ignoram qualquer trava definida em registros que existem na visualização de leitura.

Para evitar problemas de concorrência, faz sentido usar esta função com o método mysql_xdevapi\Collection::modify() Essencialmente, esta função usa travas de registros para serializar acesso a eles.

Parâmetros

lock_waiting_option

Parâmetro opcional de espera. Por padrão é MYSQLX_LOCK_DEFAULT. Valores válidos são estas constantes:

Valor Retornado

Retorna um objeto CollectionFind que pode ser usado para processamento adicional.

Exemplos

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

// ... faz uma operação com o objeto

// Completa a transação e destrava o documento
$session->commit();
?>