黑马程序员技术交流社区

标题: 自动提交 [打印本页]

作者: zhangyujie    时间: 2019-6-14 08:46
标题: 自动提交
为什么Django使用自动提交
在SQL标准中, 每个SQL语句在执行时都会启动一个事务,除非已经存在一个事务了。 这样事务必须明确是提交还是回滚。

对应用程序开发者而言,这样非常不方便。 为了避免这个问题,大多数数据库提供了一个autocommit模式。 当 autocommit被打开并且事物处于活动状态时,每个SQL查询都可以看成是一个事务。 也就是说, 不但每个查询是每个事物的开始,而且每个事物会自动提交或回滚,这取决于该查询是否成功执行。

PEP 249, Python数据库API 规范v2.0, 需要将autocommit初试设置为关闭状态。 Django覆盖了这个默认规范并且将autocommit设置为 on.

要想避免这样, 你可以deactivate the transaction management, 但不建议这样做。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2