【发布时间】:2012-03-25 00:12:18
【问题描述】:
我有一个奇怪的问题。 有两个数据库。一个有一个在线商店的所有产品。另一个有在线商店软件,只有有效的产品。
我想从 db1 中获取值,在 python 中更改一些值并插入到 db2 中。
db1.execute("SELECT * FROM table1")
for product in db1.fetchall():
# ...
db2.execute("INSERT INTO table2 ...")
print "Check: " + str(db2.countrow)
所以我可以通过 select 获取值,即使从 db2 中选择也没有问题。我的支票总是给我 1 但表 2 中没有新行。自动增量值增长但没有数据。 而且我什至没有收到“无法插入”之类的错误 那么有人知道可能出了什么问题吗? (如果我通过 phpmyadmin 手动插入它可以工作......如果我只是从我的脚本中获取 sql 并手动执行,则 sql 语句也可以工作)
编辑:在这里找到答案How do I check if an insert was successful with MySQLdb in Python?
有没有办法让这些执行而无需每次都提交? 我有一个 mysqldb 的包装器,它非常适合我,通过提交来改变行为我需要做一些大的改变。
EDIT2:好的,我发现 db1 是 MyISAM(无需提交即可工作)而 db2 是 InnoDB(实际上似乎只适用于提交)我想我也必须将 db2 更改为 MyISAM。
【问题讨论】:
标签: python database insert mysql-python