为什么 Python 对 MySQL 进行数据的插入之后需要 commit,数据库才会真的有数据?

2019-04-20 20:09:07 +08:00
 nine9
MySQL 使用的存储引擎是 InnoDB, 且 autocommit=ON,使用 python 包 MySQLdb
3687 次点击
所在节点    Python
6 条回复
starsky007
2019-04-20 20:11:27 +08:00
开了事务?
nine9
2019-04-20 20:14:01 +08:00
autocommit=ON 不是意味着自动 commit 吗?
starsky007
2019-04-20 20:21:50 +08:00
http://www.qttc.net/201208175.html

MySQL 默认操作模式就是 autocommit 自动提交模式。这就表示除非**显式地开始一个事务**,否则每个查询都被当做一个单独的事务自动执行。
dbit
2019-04-20 20:43:47 +08:00
autocommit 是按会话设置, 说不定你用的 python 执行默认的是 autocommit=false
nine9
2019-04-20 21:40:05 +08:00
@dbit 是的,我一开始的思路也是这样,但是网上搜索了很多并没有找到答案,不过现在自己解决了。
autocommit = kwargs2.pop('autocommit', False)
rainmakeroly
2019-04-20 23:52:15 +08:00
conn.autocommit(True)
SO 上说是你用的库默认 false
可以先看下官方文档
autocommit 是个方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/557103

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX