如果未指定主键,SQLite3会为每个表提供一个名为rowid的默认主键。但是,看起来依赖于此有一些缺点:
VACUUM命令可能会更改没有显式INTEGER PRIMARY KEY的表中条目的ROWID。
http://www.sqlite.org/lang_vacuum.html
我想更改现有的SQLite3数据库以使用显式主键而不是隐式rowid,因此我可以在必要时运行vacuum。我可以在不重建整个数据库的情况下这样做吗?
答案 0 :(得分:1)
您无需重建整个数据库。但是,由于SQLite不支持ALTER TABLE语句,您需要:
我建议您使用SQLiteman等应用为您执行此操作。