使用innondb引擎从mysql数据库中的python脚本插入问题

时间:2011-04-13 18:55:36

标签: python mysql innodb myisam

我正面临一个问题,我试图使用InnonDB引擎将数据从python脚本添加到mysql数据库,它可以与mysql数据库的myisam引擎一起使用。但myisam引擎的问题是它不支持外键,所以我必须在每个我想在数据库中插入/删除记录的位置添加额外的代码。

有谁知道为什么InnonDB无法使用python脚本和这个问题的可能解决方案?

2 个答案:

答案 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中启用自动提交模式?

祝你好运。