【打印的信息】
经测试这个ROLLBACK,在代码中self.db.close() 前执行
【代码和配置】
业务代码
session配置代码使用默认: autoflush=True, autocommit=False, expire_on_commit=True
【自己查询的信息】
1、sqlalchemy在进行query操作时,会先执行一下flush(),把信息提交到数据库(但没有commit)
2、在查询后增加self.db.commit() 就没有打印ROLLBACK信息了
网页没有查到相关的解释
所以想问,query操作时,没有变更数据,运行机理是什么?为什么的会出现的ROLLBACK信息,查询也一定要进行commit()吗?
1.每次开启一个session,都会开启一个事务
2.close一个session时,如果事务还没有提交,将会回滚
3.commit()之后,事务已经提交,close时就不会回滚了