2017-06-16 83 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