说明
我已经在python3中使用sqlite构建了一个数据库。到目前为止,我对提交保存更改(使用插入命令和删除命令)没有任何问题。但是,我正在尝试使用update命令,但无法保存更改(尽管调用commit(),但它只更改工作内存中的DB)。
Find null values from table and replace it with space - sqlite
.
细节
下面是我要执行的当前代码:
self.cursor.execute(f'UPDATE {tbl_name} SET {col_name} = IFNULL({col_name}, "")')
self.conn.commit()
注意,self的定义如下:
Database.conn = sqlite3.connect(self.location + self.name)
Database.cursor = sqlite3.connect(self.location + self.name).cursor()
如前所述,此操作正确;但是,它不会将更改提交到实际数据库。这由用于sqlite的DB browser验证,并在关闭时再次拉取数据并重新执行。
我还将注意到,如果我关闭此程序并重新初始化以再次运行它,它将出错,因为尽管最后一行代码是:
Database.conn.commit() # Save (commit) the changes
Database.conn.close() # Close database
结论
提前感谢,因为我一直在用这个打我的头靠墙,还没有找到像这样的问题在其他地方!