SQLite3 дает вам первичный ключ по умолчанию, называемый rowid для каждой таблицы, если вы не указали первичный ключ. Тем не менее, похоже, что есть некоторые недостатки, чтобы полагаться на это:
Команда VACUUM может изменить ROWID записей в таблицах, которые не имеют явного INTEGER PRIMARY KEY.
http://www.sqlite.org/lang_vacuum.html
Я хочу изменить существующую базу данных SQLite3 для использования явных первичных ключей, а не неявных rowid, чтобы у меня была возможность запускать вакуум при необходимости. Могу ли я сделать это без перестройки всей базы данных?