SQLiteOpenHelper.OnUpgrade(SQLiteDatabase, Int32, Int32) Метод

Определение

Вызывается при обновлении базы данных.

[Android.Runtime.Register("onUpgrade", "(Landroid/database/sqlite/SQLiteDatabase;II)V", "GetOnUpgrade_Landroid_database_sqlite_SQLiteDatabase_IIHandler")]
public abstract void OnUpgrade(Android.Database.Sqlite.SQLiteDatabase? db, int oldVersion, int newVersion);
[<Android.Runtime.Register("onUpgrade", "(Landroid/database/sqlite/SQLiteDatabase;II)V", "GetOnUpgrade_Landroid_database_sqlite_SQLiteDatabase_IIHandler")>]
abstract member OnUpgrade : Android.Database.Sqlite.SQLiteDatabase * int * int -> unit

Параметры

db
SQLiteDatabase

База данных.

oldVersion
Int32

Старая версия базы данных.

newVersion
Int32

Новая версия базы данных.

Атрибуты

Комментарии

Вызывается при обновлении базы данных. Реализация должна использовать этот метод для удаления таблиц, добавления таблиц или других действий, необходимых для обновления до новой версии схемы.

Здесь приведена документация ПО SQLite ALTER TABLE. При добавлении новых столбцов можно использовать ALTER TABLE для вставки их в динамическую таблицу. При переименовании или удалении столбцов можно использовать ALTER TABLE для переименования старой таблицы, а затем создать новую таблицу, а затем заполнить новую таблицу с содержимым старой таблицы.

Этот метод выполняется в транзакции. При возникновении исключения все изменения будут автоматически откатиться.

< >em Важно.</em> Не следует изменять существующий шаг миграции с версии X до X+1 после выпуска сборки, содержащей этот шаг миграции. Если шаг миграции имеет ошибку и выполняется на устройстве, шаг НЕ будет повторно запускаться в будущем, если исправление выполняется на шаге миграции.

Например, предположим, что шаг миграции переименовывает столбец базы данных в foobar то время, когда имя должно было быть baz. Если этот шаг миграции выпущен в сборке и выполняется на устройстве пользователя, столбец будет переименован barв . Если разработчик впоследствии редактирует этот же шаг миграции, чтобы изменить имя baz на правильное, пользовательские устройства, которые уже выполнили этот шаг, по-прежнему будут иметь имя bar. Вместо этого необходимо создать новый шаг миграции, чтобы исправить ошибку и переименовать barbazего, чтобы убедиться, что ошибка исправлена на устройствах, которые уже выполнили шаг миграции с ошибкой.

Java документации по android.database.sqlite.SQLiteOpenHelper.onUpgrade(android.database.sqlite.SQLiteDatabase, int, int).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к