【问题标题】:Cursor not actually updating table [duplicate]光标实际上没有更新表[重复]
【发布时间】:2016-12-30 13:24:54
【问题描述】:

我在烧瓶中有以下设置:

@app.route('/restart/<int:id>')
def feed_info(id):

   con = sqlite3.connect(database)
   con.row_factory = sqlite3.Row
   cur = con.cursor()

   main_q = "UPDATE feed SET update_flag = 1 WHERE id = {};".format(id)
   print(main_q)

   cur.execute(main_q)

   return "Set to update!"

然而,尽管 SQL 似乎可以自己运行,但当我在 Flask 中调用该方法时,它实际上并没有进行更新。

有什么想法吗?

【问题讨论】:

  • 你需要commit
  • 您也应该这样做:cur.close()con.close()。有关详细信息,请参阅我的答案。

标签: python sql flask


【解决方案1】:

您必须在cur.execute() 之后执行con.commit(),否则您的更改将不会反映在数据库中。

注意:另外,在关闭数据库连接的逻辑之后,您必须执行cur.close()con.close()。因为大多数数据库都有最大连接限制,如果你不显式关闭连接,它会一直活着,直到它达到connection-timeout

【讨论】:

    【解决方案2】:

    那是因为你需要承诺。在cur.execute()之后添加con.commit()

    【讨论】:

    • 太棒了。总是小事。谢谢!
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 2020-10-10
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多