(无版本信息可用,可能只存在于 Git 中)
CollectionFind::lockExclusive — 以 EXCLUSIVE LOCK 执行操作
$lock_waiting_option
= ?): mysql_xdevapi\CollectionFind以独占方式锁定文档。只要文档被锁定,其他事务就不能更新文档、使用 SELECT ... LOCK IN SHARE MODE
,或在某些事务隔离级别下读取数据。一致性读取忽略对读取视图中存在的记录设置的任何锁。
为了避免并发问题,使用此函数与 mysql_xdevapi\Collection::modify() 方法一起使用是有意义的。从本质上讲,此函数使用行锁来序列化对行的访问。
lock_waiting_option
可选的等待选项。默认情况下为 MYSQLX_LOCK_DEFAULT
。有效值是以下常量
返回一个 CollectionFind 对象,可用于进一步处理。
示例 #1 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();
// ... 对对象执行操作
// 完成事务并解锁文档
$session->commit();
?>