为何执行后需要调用connector.commit()?

-1 投票
1 回答
528 浏览
提问于 2025-04-16 03:59

我有一段SQLite和Python的代码,它执行查询命令如下。

def queryDB(self, command_):_
    self.cursor.execute(command_)
    self.connector.commit() # <---- ???
    ...

这段代码运行得很好,但我有一些问题。

  • 为什么需要connector.commit()?它是干什么的?
  • cursor.execute()是做什么的?

1 个回答

2

根据这个网站的内容:http://www.amk.ca/python/writing/DB-API.html

“对于支持事务的数据库,当你创建一个游标(可以理解为一个操作数据库的工具)时,Python接口会自动开始一个事务。使用这个游标进行的更新,可以通过commit()方法来保存,而rollback()方法则是用来放弃这些更新。每次调用这两个方法后,都会开始一个新的事务。有些数据库不支持事务,它们会在执行时直接应用所有的更改。在这些数据库中,commit()方法不会有任何作用,但为了与支持事务的数据库兼容,你仍然应该调用它。”

撰写回答