SQLAlchemy中的autocommit

sessionmaker(bind=engine, autocommit=False)  # autocommit default False


在MySQL中autocommit

SET AUTOCOMMIT=0  -- autocommit default 1


我想知道,这两个自动提交是同一件事吗?即SQLAlchemy是否通过与autocommit等价的方式将SET AUTOCOMMIT状态传递给MySQL?

最佳答案

根据the docs,它们并不相同(尽管它们获得相同的结果)。

SQLAlchemy始终使用事务,因此始终在MySQL上设置AUTOCOMMIT=0。但是,如果设置autocommit=True,则每当更改数据时,它将自动调用.commit()

这样做是因为每个数据库的提交方式都不同(如果有的话),并且SQLAlchemy试图在它们之间保持一致的行为。

关于python - 这两个自动提交是同一件事吗:SQLAlchemy和MySQL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29435083/

10-10 21:54