(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:
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();
?>