2017-06-16 45 views
0

我是新来的Sqlite,我有一个15GB的数据库。我需要更新2个表中列“文件名”中的所有行,以便截断文件名。 表1有50,000行,表2有2500万行。批量更新所有行sqlite

我知道sqlite的更新命令,但我想知道如果使用这个建议的时间和可能出错的事情。
我打算使用这些命令:

UPDATE users SET filename=substr(filename,15) 
UPDATE people SET filename=substr(filename,15) 

具体做法是:

  1. 多久这个时间?
  2. 我的电脑应该有一些最低配置才能正常工作吗?
  3. 有没有办法让我撤销我的更新,以防万一
    可怕的错误,像版本控制?
  4. 有没有更好的方式在那里更改sqlite数据库中的所有行 ?

非常感谢!

+1

这将需要很长时间,特别是对于第二张桌子。 –

回答

0

重写所有内容需要很长时间。

您不需要太多的内存(虽然更有助于缓存),但您需要足够的磁盘空间来存储旧数据和新数据。

默认情况下,SQLite使用自动事务处理,当某些语句在中间被中断时阻止部分更改,但在每个语句结束时进行提交。为了能够检查更改并稍后提交或回滚,请使用explicit transaction