我正在使用python sqlite3模塊的應用程序。我的數據庫使用sqlite3提供的隱式ROWID列。我預計在刪除一些行並抽空數據庫後,ROWID將被重新排序。因爲sqlite3的正式文件中:使用python sqlite3模塊時,爲什麼在VACUUM後沒有更新ROWID?
真空命令可能會改變條目的ROWID任何表是 沒有一個明確的INTEGER PRIMARY KEY。
我的pysqlite版本是2.6.0
和sqlite版本是3.5.9
。有人可以告訴我爲什麼它不起作用嗎?使用真空吸塵器時應注意什麼?
P.S.我有一個獨立的sqlite,其版本是3.3.6
。我測試了其中的真空聲明,並更新了ROWID。那麼罪魁禍首能成爲這個版本嗎?或者它可能是一個pysqlite的錯誤?
在此先感謝您的任何意見或建議!
它只說「可能會改變」。 –
@JanneKarila謝謝你的回覆。因此,'五月',這是否意味着實際實施因版本而異?甚至對於相同的版本,行爲是不可預測的? – user2346069
@JanneKarila我用最新的sqlite(3.7.17)測試過它。 ROWID也不更新。所以我認爲我的第一個假設是有道理的。如果是這樣的話,你知道是否有辦法強制更新ROWID以便它們始終保持連續?謝謝。 – user2346069