如何在sqlalChemy.Engine.Connection中设置autoCommit=1 [英] how to set autocommit = 1 in a sqlalchemy.engine.Connection

查看:39
本文介绍了如何在sqlalChemy.Engine.Connection中设置autoCommit=1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在sqlalChemy中,我建立连接:

 conn = engine.connect()
我发现这将在我的mysqld日志中设置autoCommit=0。 现在我想设置autoCommit=1,因为我不想在事务中查询。

有办法做到这一点吗?

推荐答案

发件人The SQLAlchemy documentation: Understanding autocommit

conn = engine.connect()
conn.execute("INSERT INTO users VALUES (1, 'john')")  # autocommits

只有在没有以其他方式声明Transaction的情况下,"自动提交"功能才有效。这意味着该功能通常不与ORM一起使用,因为默认情况下Session对象始终维护正在进行的Transaction

使用<[2-4],EngineExecutable上提供的生成性Connection.execution_options()方法,使用将打开或关闭选定作用域的自动提交的"autoCommit"标志,可以完全控制"自动提交"行为。例如,表示提交的存储过程的text()构造可能会使用它,以便SELECT语句将发出COMMIT:

engine.execute(text("SELECT my_mutating_procedure()").execution_options(autocommit=True))

这篇关于如何在sqlalChemy.Engine.Connection中设置autoCommit=1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆