GQLAlchemy是否支持显式事务?执行BEGIN/COMMIT操作遇阻
GQLAlchemy显式事务支持说明
GQLAlchemy支持事务管理,但不建议直接通过执行BEGIN;或COMMIT;语句手动控制事务——这种方式会和它底层的事务逻辑冲突,这也是你尝试后未成功的原因。它提供了更适配Python开发习惯的事务控制方式:
推荐的事务使用方式:上下文管理器
利用session.transaction()上下文管理器可以自动处理事务的提交与回滚,代码示例:
from gqlalchemy import Memgraph # 连接到Memgraph db = Memgraph() # 事务上下文:所有内部操作处于同一事务 with db.session.transaction(): db.execute("CREATE (u:User {id: 1, name: 'Alice'})") db.execute("CREATE (p:Post {id: 101, title: 'First Post'})") db.execute("MATCH (u), (p) CREATE (u)-[:AUTHOR_OF]->(p)") # 离开上下文后,事务自动提交;若内部抛出异常,会自动回滚
手动控制事务(显式提交/回滚)
如果需要更精细的控制,可以直接调用session的事务方法:
from gqlalchemy import Memgraph db = Memgraph() session = db.session # 启动事务 session.begin() try: # 执行事务内的操作 session.execute("CREATE (c:Category {name: 'Tech'})") # 手动提交 session.commit() except Exception: # 发生异常时回滚 session.rollback() raise
内容的提问来源于stack exchange,提问作者KateLatte
相关产品推荐
相关产品推荐

