(No version information available, might only be in Git)
CollectionFind::lockExclusive — Führt eine Operation mit EXCLUSIVE LOCK aus
$lock_waiting_option
= ?): mysql_xdevapi\CollectionFindSperrt das Dokument exklusiv. Solange das Dokument gesperrt ist, können andere Transaktionen das Dokument nicht aktualisieren, SELECT ... LOCK IN SHARE MODE verwenden oder die Daten in bestimmten Isolationsstufen der Transaktion lesen. Zusammenhängende Lesevorgänge ignorieren alle Sperren, die auf die in der Leseansicht vorhandenen Datensätze gesetzt sind.
Um Gleichzeitigkeitsprobleme zu vermeiden, ist es sinnvoll, diese Funktion zusammen mit der Funktion modify() zu verwenden. Im Wesentlichen verwendet diese Funktion Zeilensperren, um den Zugriff auf Zeilen zu serialisieren.
lock_waiting_option
Die optionale Warteoption. Voreingestellt ist
MYSQLX_LOCK_DEFAULT
. Folgende Konstanten sind
zulässig:
MYSQLX_LOCK_DEFAULT
MYSQLX_LOCK_NOWAIT
MYSQLX_LOCK_SKIP_LOCKED
Gibt ein CollectionFind-Objekt zurück, das für die weitere Verarbeitung verwendet werden kann.
Beispiel #1 mysql_xdevapi\CollectionFind::lockExclusive()-Beispiel
<?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();
// ... durchführen einer Operation am Objekt
// Abschließen der Transaktion und entsperren des Dokuments
$session->commit();
?>