SQLite3は、主キーを指定しない場合、テーブルごとにrowidと呼ばれるデフォルトの主キーを提供します。ただし、これに依存することにはいくつかの欠点があるようです。
VACUUMコマンドは、明示的なINTEGERPRIMARYKEYを持たないテーブルのエントリのROWIDを変更する場合があります。
http://www.sqlite.org/lang_vacuum.html
暗黙のROWIDではなく明示的な主キーを使用するように既存のSQLite3データベースを変更したいので、必要に応じてバキュームを実行できます。データベース全体を再構築せずにこれを行うことはできますか?