1

我正在开发一个使用 python sqlite3 模块的应用程序。我的数据库使用了 sqlite3 提供的隐式 ROWID 列。我希望在删除一些行并清理数据库后对 ROWID 进行重新排序。因为在sqlite3官方文档中:

VACUUM 命令可以更改任何没有显式 INTEGER PRIMARY KEY 的表中条目的 ROWID。

我的 pysqlite 版本是2.6.0,sqlite 版本是3.5.9. 谁能告诉我为什么它不起作用?使用吸尘器时有什么需要注意的吗?

PS我安装了一个独立的 sqlite,其版本是3.3.6. 我测试了其中的真空语句,并且 ROWID 得到了更新。那么罪魁祸首可能是版本吗?还是可能是 pysqlite 的错误?

提前感谢您的任何想法或建议!

4

1 回答 1

0

此行为取决于版本。

如果您想要保证重新排序,您必须自己将所有记录复制到新表中。(这适用于隐式和显式 ROWID。)

于 2013-08-01T08:24:57.053 回答