首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python MySQL中执行插入查询的正确方式是什么?

问在Python MySQL中执行插入查询的正确方式是什么?
EN

Stack Overflow用户
提问于 2010-08-10 00:57:14
回答 1查看 1.1K关注 0票数 1

我有一个连接到本地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(),没有错误,也没有结果。有人知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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语句--是非事务性的,因此它们不能回滚,并且它们会导致提交挂起的事务。

Is a FAQ

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3442307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档