我有一个连接到本地MySQL数据库的python脚本。我知道它是正确连接的,因为我可以这样做并获得正确的结果:
cursor.execute("SELECT * FROM reel")
但是,当我尝试执行任何insert语句时,它什么也不做。没有错误消息,没有异常。当我从sqlyog中检查数据库时,数据库中没有显示任何内容。下面是我的代码:
Self.cursor.executemany(“插入卷筒(etime,etext)值(%s,%s)",tups)
其中tups是这样的元组列表('0000-00-00 00: 00:00:00','text')。没有显示任何错误,如果我复制并粘贴生成的SQL查询到sqlyog中,它就可以工作。我尝试生成查询并对其执行cursor.execute(),没有错误,也没有结果。有人知道我做错了什么吗?
发布于 2010-08-10 01:01:40
您需要在self.cursor.executemany("INSERT INTO reel (etime,etext) VALUES (%s,%s)", tups)之后执行self.cursor.commit()
从1.2.0开始,MySQLdb默认禁用自动提交,这是DB-API标准(PEP-249)所要求的。如果您正在使用InnoDB表或其他类型的事务性表类型,则需要在关闭连接之前执行connection.commit(),否则您所做的任何更改都不会写入数据库。
相反,您也可以使用connection.rollback()来丢弃自上次提交以来所做的任何更改。
重要提示:一些SQL语句--特别是CREATE TABLE之类的DDL语句--是非事务性的,因此它们不能回滚,并且它们会导致提交挂起的事务。
https://stackoverflow.com/questions/3442307
复制相似问题