(No version information available, might only be in Git)
CollectionFind::lockExclusive — Ejecuta la operación con un BLOQUEO EXCLUSIVO
$lock_waiting_option
= ?): mysql_xdevapi\CollectionFind
Bloquea el documento de manera exclusiva.
Mientras el documento está bloqueado,
otras transacciones no pueden actualizar el documento,
utilizar SELECT ... LOCK IN SHARE MODE
,
o leer los datos en ciertos niveles de aislamiento de transacción.
Las lecturas coherentes ignoran los bloqueos establecidos en los registros que existen en la vista de lectura.
Para evitar problemas de concurrencia, es lógico utilizar esta función con el método mysql_xdevapi\Collection::modify(). Esencialmente, esta función utiliza bloqueos de línea para serializar el acceso a las líneas.
lock_waiting_option
Una opción de espera opcional. Por omisión, es MYSQLX_LOCK_DEFAULT
. Los valores válidos son estas constantes:
Devuelve un objeto CollectionFind que puede ser utilizado para un procesamiento posterior.
Ejemplo #1 Ejemplo 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();
// ... realizar una operación sobre el objeto
// Validar la transacción y desbloquear el documento
$session->commit();
?>