(No version information available, might only be in Git)
CollectionFind::lockExclusive — Führt eine Operation mit EXCLUSIVE LOCK aus
$lock_waiting_option
= ?): mysql_xdevapi\CollectionFind
Sperrt 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 Methode mysql_xdevapi\Collection::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();
?>