我正面临一个问题,我试图使用InnonDB引擎将数据从python脚本添加到mysql数据库,它可以与mysql数据库的myisam引擎一起使用。但myisam引擎的问题是它不支持外键,所以我必须在每个我想在数据库中插入/删除记录的位置添加额外的代码。
有谁知道为什么InnonDB无法使用python脚本和这个问题的可能解决方案?
答案 0 :(得分:6)
InnoDB是交易性的。您需要在插入/删除/更新后调用connection.commit()。
编辑:您可以调用connection.autocommit(True)打开自动提交。
答案 1 :(得分:4)
Python DB API默认禁用自动提交
从谷歌粘贴(第一页,第二个结果)
MySQL :: MySQL 5.0参考手册:: 13.2.8 InnoDB ... 默认情况下,MySQL使用autocommit ... 为每个新连接启动会话 dev.mysql.com/.../innodb-transaction-model.html
然而
显然Python在非自动提交模式下启动MySQL,请参阅:
http://www.kitebird.com/articles/pydbapi.html
来自文章:
连接对象commit()方法提交当前事务中的任何未完成的更改,以使它们在数据库中永久保留。在DB-API中,连接以自动提交模式禁用开始,因此您必须在断开连接之前调用commit(),否则更改可能会丢失。
Bummer,dunno如何覆盖它,我不想通过猜测让你误入歧途。 我建议打开一个题为:
的新问题如何在MySQL python DB-API中启用自动提交模式?
祝你好运。