【问题标题】:Bulk Update all rows sqlite批量更新所有行 sqlite
【发布时间】:2017-06-16 00:15:15
【问题描述】:

我是 Sqlite 新手,我有一个 15GB 的数据库。我需要更新 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 数据库中?

非常感谢!

【问题讨论】:

  • 这需要很长时间,尤其是第二张桌子。

标签: sql database sqlite database-administration


【解决方案1】:

重写一切需要很长时间。

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

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

【讨论】:

    猜你喜欢
    • 2020-02-18
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2014-04-27
    • 1970-01-01
    相关资源
    最近更新 更多