交易¶
保存点¶
的保存点
语句设置命名事务,允许事务的部分在之前回滚提交
.
获取集合对象¶
假设存在test_schema.test_collection
收集。
[{“_id”:1,“名称”:“弗雷德”,“年龄”:21})
获取集合对象。
会话=mysqlx.get_session(“根:@localhost: 33060”)模式=会话.get_schema(“test_schema”)集合=模式.get_collection(“test_collection”)
设置并回滚到指定的事务保存点¶
可以提供保存点名称来创建事务保存点,该事务保存点稍后可用于回滚。
一个mysqlx。OperationalError
是否会在保存点名称为无效字符串或正在使用不存在的保存点时引发mysqlx.Session.rollback_to ()
.
#开始交易会话.start_transaction()集合.添加({“名称”:“威尔玛”,“年龄”:33}).执行()断言(2==集合.数())#创建保存点会话.set_savepoint(“sp”)集合.添加({“名称”:“巴尼”,“年龄”:42}).执行()断言(3.==集合.数())#回滚到一个保存点会话.rollback_to(“sp”)断言(2==集合.数())#提交所有操作会话.提交()
设置并回滚到未命名的事务保存点¶
如果未提供保存点名称,mysqlx.Session.release_savepoint ()
将返回生成的保存点名称。
#开始交易会话.start_transaction()集合.添加({“名称”:“威尔玛”,“年龄”:33}).执行()断言(2==集合.数())#创建保存点保存点=会话.set_savepoint()集合.添加({“名称”:“巴尼”,“年龄”:42}).执行()断言(3.==集合.数())#回滚到一个保存点会话.rollback_to(保存点)断言(2==集合.数())#提交所有操作会话.提交()
释放一个事务保存点¶
一个mysqlx。OperationalError
是否会引发,如果正在使用不存在的保存点mysqlx.Session.release_savepoint ()
.
#开始交易会话.start_transaction()集合.添加({“名称”:“威尔玛”,“年龄”:33}).执行()断言(2==集合.数())#创建保存点会话.set_savepoint(“sp”)集合.添加({“名称”:“巴尼”,“年龄”:42}).执行()断言(3.==集合.数())#释放一个保存点会话.release_savepoint(“sp”)断言(3.==集合.数())#提交所有操作会话.提交()