【问题标题】:INSERT doesn't work in pymysql, but SELECT does just fineINSERT 在 pymysql 中不起作用,但 SELECT 就可以了
【发布时间】:2020-11-25 12:09:37
【问题描述】:

我正在使用 Jupyter Notebook 并使用 pymysql。我可以读取该数据库,因此必须建立连接,但我无法发送任何 INSERT 语句。

connection = pymysql.connect(endpoint, user, passwd, db)
insert = [('Popowice',363000),('Wroclaw',389991),('Biskupin',359000)]
sql = "INSERT INTO housing_wroclaw (`District`, `Price`) VALUES (%s, %s)"
        
cursor = connection.cursor()
cursor.executemany(sql,insert)

这段代码与我的凭据返回 3 - 插入元组的数量并且没有错误。但是数据库只是没有这些记录。我还尝试使用 execute() 而不是 executemany() 循环值,但都没有奏效,后者显然更好。

下面是我的工作 SELECT 语句:

cursor = connection.cursor()
cursor.execute('SELECT * from housing_wroclaw')

rows = cursor.fetchall()

如何插入?为什么它不起作用?

【问题讨论】:

    标签: python mysql database jupyter-notebook pymysql


    【解决方案1】:

    您必须在插入数据后调用 connection.commit() 以使其持久化。

    【讨论】:

    • 顺便说一句,我已经阅读了有关关闭连接的信息 - 这也有必要吗?
    • 在 DB 完成工作后关闭连接是最佳做法。它有助于为客户端和数据库服务器释放内存和 TCP 连接。
    猜你喜欢
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2012-08-25
    • 2015-12-15
    相关资源
    最近更新 更多