在sqlalchemy中,我进行连接:
conn = engine.connect()
Run Code Online (Sandbox Code Playgroud)
我发现这将在我的mysqld日志中设置autocommit = 0。现在,我要设置autocommit = 1,因为我不想在事务中查询。
有没有办法做到这一点?
conn = engine.connect()
conn.execute("INSERT INTO users VALUES (1, 'john')") # autocommits
Run Code Online (Sandbox Code Playgroud)
只有在没有Transaction其他声明的情况下,“自动提交”功能才有效。这意味着该功能通常不与ORM一起使用,因为Session默认情况下该对象始终保持进行中Transaction。
的“自动提交”的行为完全控制可使用生成Connection.execution_options()设置在方法Connection,Engine,Executable,采用了“自动提交”标志,该标志将开启或关闭自动提交选定范围。例如,text()代表提交的存储过程的构造可能会使用它,以便SELECT语句将发出COMMIT:
engine.execute(text("SELECT my_mutating_procedure()").execution_options(autocommit=True))
Run Code Online (Sandbox Code Playgroud)
您可以使用此:
from sqlalchemy.sql import text
engine = create_engine(host, user, password, dbname)
engine.execute(text(sql).execution_options(autocommit=True))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10659 次 |
| 最近记录: |