首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python mysql包没有运行替换语句

问Python mysql包没有运行替换语句
EN

Stack Overflow用户
提问于 2017-06-23 19:14:27
回答 3查看 522关注 0票数 0

我遇到了一个问题,我有一个SQL语句,当在我的MySQL工作台中运行时,它会正确执行,但是当使用python包函数运行时,cursor.execute()就不能工作了。问题SQL语句是:

替换为mmm_dev.samp_wp_links SELECT *从mmm_master.samp_wp_links;

语句应该将mmm_master中的所有数据复制到mmm_dev中。下面是用于执行查询的python代码:

代码语言:javascript
复制
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
def examine(cursor, cnx):
    try:
            qry = cursor.execute("REPLACE INTO mmm_dev.samp_wp_links SELECT * FROM mmm_master.samp_wp_links;")
    except mysql.connector.Error as err:
            print("Failed to select everything")
            exit(1)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-23 20:37:55

MySQL Python库是佩普249-compliant:

.commit ()将任何挂起的事务提交到数据库。 请注意,如果数据库支持自动提交功能,则必须首先关闭此功能。可以提供一个接口方法来打开它。 不支持事务的数据库模块应该实现此方法的空功能。

调用cnx.commit()

票数 1
EN

Stack Overflow用户

发布于 2017-06-23 20:22:54

打给examine()。用print()进行调试

代码语言:javascript
复制
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
def examine(cursor):
    print("[DEBUG] 1: before query")
    try:
            qry = cursor.execute("REPLACE INTO mmm_dev.samp_wp_links SELECT * FROM mmm_master.samp_wp_links;")
            print("[DEBUG] 2: after query")
    except mysql.connector.Error as err:
            print("Failed to select everything %s" % err)
            exit(1)
    print("[DEBUG] 3: success")
examine(cursor)
票数 1
EN

Stack Overflow用户

发布于 2021-01-11 04:38:26

您必须执行提交。

代码语言:javascript
复制
mydb.commit()

为了保存所做的更改。

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

https://stackoverflow.com/questions/44728506

复制
相关文章

相似问题

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