В основном вам нужно что-то для сравнения в live базе данных с новой.
например, если вы добавляете таблицу, вы можете использовать SELECT * FROM sqlite_master WHERE name = your_new_table_name
, чтобы увидеть, существует ли эта таблица.Однако вы можете использовать более простые CREATE TABLE IF NOT EXISTS ........
Новые столбцы с ограничениями, вы можете использовать ALTER TABLE your_existing_tablename ADD COLUMN you_new_column_definition
(существующие данные сохраняются, если будет применяться значение по умолчанию).
Ограниченияявляются: -
- Столбец может не иметь ограничения PRIMARY KEY или UNIQUE.
- Столбец может не иметь значения по умолчанию CURRENT_TIME, CURRENT_DATE, CURRENT_TIMESTAMP илиВыражение в скобках.
- Если указано ограничение NOT NULL, то столбец должен иметь значение по умолчанию, отличное от NULL.
Если включены ограничения внешнего ключа и столбец сПри добавлении предложения REFERENCES для столбца должно быть установлено значение по умолчанию NULL.
- Обратите также внимание, что при добавлении ограничения CHECK ограничение CHECK не проверяется для уже существующих строк таблицы.Это может привести к таблице, содержащей данные, которые нарушают ограничение CHECK.Будущие версии SQLite могут измениться для проверки ограничений CHECK по мере их добавления.
SQL как понял SQLite - ALTER TABLE
Если столбец уже существует, то результатом будет сообщение о том, что столбец является дубликатом, например: -
ALTER TABLE ex01 ADD COLUMN col5 TEXT
> duplicate column name: col5
> Time: 0s
Вы всегда можете извлечь существующие столбцы, используя PRAGMA table_info(your_existing_table_name);
, и продолжить, только еслиДобавляемый столбец не является одним из значений в столбце name набора результатов.
- Обратите внимание, что приведенная выше ссылка предлагает другие способы обработкиболее сложные ситуации.
В Android стандартные методы SQLiteDatabase используют user_version (байты 60 63 в заголовке базы данных).) для хранения актуальной версиибаза данных, которая сравнивается с предоставленным значением.Если предоставленное значение больше, вызывается метод onUpgrade.
Заявления PRAGMA Формат файла базы данных
PS Asking Лучшее может привести к ответам, основанным на мнении, иногда приводя к горячим спорам и, следовательно, следует избегать запроса на Лучшее.Скорее спросите пути.