我是Sqlite的新手,我有一个15GB的数据库。我需要更新列中的所有行" filename"在其中2个表中,文件名被截断。 表1有50,000行,表2有2500万行。
我知道sqlite的更新命令,但我想知道在使用时间和可能出错的事情方面是否可取。 我计划使用这些命令:
UPDATE users SET filename=substr(filename,15)
UPDATE people SET filename=substr(filename,15)
具体来说:
非常感谢你!
答案 0 :(得分:0)
重写所有内容需要很长时间。
您不需要太多内存(尽管更有助于缓存),但是您需要足够的磁盘空间来存储旧数据和新数据。
默认情况下,SQLite使用自动事务,当某些语句在中间中断时阻止部分更改,但在每个语句结束时提交。为了能够检查更改并稍后提交或回滚,请使用explicit transaction。