批量更新所有行sqlite

时间:2017-06-16 00:15:15

标签: sql database sqlite database-administration

我是Sqlite的新手,我有一个15GB的数据库。我需要更新列中的所有行" filename"在其中2个表中,文件名被截断。 表1有50,000行,表2有2500万行。

我知道sqlite的更新命令,但我想知道在使用时间和可能出错的事情方面是否可取。 我计划使用这些命令:

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

具体来说:

  1. 这需要多长时间?
  2. 我的电脑是否应该有一些最低配置才能正常使用?
  3. 有什么方法让我撤消我的更新以防万一 版本控制可怕的错误?
  4. 是否有更好的方法来更改所有行 在sqlite数据库中?
  5. 非常感谢你!

1 个答案:

答案 0 :(得分:0)

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

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

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