Python sqlite3删除没有做任何事情

时间:2016-06-17 17:52:14

标签: python python-2.7 sqlite sql-delete

我是关于sqlite的菜鸟(但有点像Pythonista经验丰富),但我很担心为什么这(Python 2.7,DBPATH是数据库的路径)......

import sqlite3

connection = sqlite3.connect(DBPATH)
cursor = connection.cursor()
query = "SELECT * from jobs"
cursor.execute(query)
print(cursor.fectchall())
query = "DELETE from jobs"
cursor.execute(query)

...输出表格的内容(因此表格的名称是正确的)而不改变它。有人能指出明显的吗?

2 个答案:

答案 0 :(得分:3)

从手册:

提交()

此方法提交当前事务。如果你不打电话给这个  方法,自上次调用commit()以来所做的任何事情都是不可见的  其他数据库连接。如果你想知道为什么你没有看到你的数据  写入数据库,请检查你是不是忘了打电话给这个方法。

相反,您可以在连接时设置“隔离级别”,这样可以自动执行提交。

self.db = sqlite3.connect(self.db_name, isolation_level=None)

答案 1 :(得分:2)

在数据库中执行的每次 CUD 操作后,您必须commit()

  

如果你 C reate, U pdate或 D elete,那么commit()