Python | MySQLdb - >我无法插入

0 python database insert mysql-python

我有一个奇怪的问题.有两个数据库.其中一个产品包含在线商店.另一个上面有网上商店软件,只有活跃的产品.

我想从db1中获取值,在python中更改一些值并插入到db2中.

db1.execute("SELECT * FROM table1")
for product in db1.fetchall():
    # ...
    db2.execute("INSERT INTO table2 ...")
    print "Check: " + str(db2.countrow)
Run Code Online (Sandbox Code Playgroud)

所以我可以通过select获取值,即使从db2中选择也没问题.我的检查总是给我1但是table2中没有新的行.自动增量值增加但没有数据.我甚至没有得到像"无法插入"这样的错误所以有人知道可能出现什么问题吗?(如果我通过phpmyadmin手动插入它可以工作......如果我只是从我的脚本中取sql并手动执行sql-statements工作以及)

编辑:在这里找到答案如何在Python中检查插入是否成功使用MySQLdb?

有没有办法让这些执行没有每次提交?我有一个围绕mysqldb的包装器,它对我来说非常有效,通过提交改变行为我需要进行一些重大更改.

编辑2:好吧我发现db1是MyISAM(没有提交就可以工作)而db2是InnoDB(实际上似乎只能用于提交)我想我必须将db2更改为MyISAM.

Edu*_*nec 5

db2.commit()如果您正在使用InnoDB,请尝试在插入后添加.

从1.2.0开始,默认情况下,MySQLdb根据DB-API标准(PEP-249)的要求禁用自动提交.如果您使用InnoDB表或某些其他类型的事务表类型,则需要在关闭连接之前执行connection.commit(),否则您的更改都不会写入数据库.

http://mysql-python.sourceforge.net/FAQ.html#my-data-disappeared-or-won-t-go-away