这两个自动提交是一样的:SQLAlchemy和MySQL?

时间:2015-04-03 15:27:13

标签: python mysql sqlalchemy

SQLAlchemy中的

autocommit

sessionmaker(bind=engine, autocommit=False)  # autocommit default False
MySQL中的

autocommit

SET AUTOCOMMIT=0  -- autocommit default 1

我想知道,这两个autocommits是一回事吗?即SQLAlchemy通过等同于autocommit的东西将SET AUTOCOMMIT状态传递给MySQL?

1 个答案:

答案 0 :(得分:0)

根据the docs,这些并不相同(尽管它们达到了相同的结果)。

SQLAlchemy 始终使用事务,因此它始终在MySQL上设置AUTOCOMMIT=0。但是,如果您设置autocommit=True,只要您对数据进行更改,它就会自动调用.commit()

这是以这种方式完成的,因为每个数据库都以不同的方式进行自动提交(如果有的话),并且SQLAlchemy尝试在它们之间保持一致的行为。