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/