Кто-нибудь, пожалуйста, помогите мне относительно правильного использования onUpgrade() в классе sqliteopenhelper. Спасибо заранее.Что такое onUpgrade() в sqlite?
ответ
В Sqliteopenhelper вы определяете версию своей базы данных. Если вы измените свою базу данных, то будет выполнена onUpgrade()
. Он является аналогом onCreate()
В вашем onUpgrade вы уроните старые таблицы и создадите новые.
Существует небольшой пример:
public class BaseDatabaseHandler extends SQLiteOpenHelper {
/********************************************************
* Database
********************************************************/
private static final int DATABASE_VERSION = 4;
private static final String DATABASE_NAME = "test.db";
/********************************************************
* Table names
********************************************************/
protected static final String TABLE_INPUT = "input";
/********************************************************
* Column names
********************************************************/
/* Input*/
protected static final String COLUMN_ID = "id";
protected static final String COLUMN_NAME = "name";
public BaseDatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_INPUT_TABLE =
"CREATE TABLE " + TABLE_INPUT + " ("
+ COLUMN_ID + " LONG PRIMARY KEY, "
+ COLUMN_NAME + " TEXT, "
+ ")";
db.execSQL(CREATE_INPUT_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_INPUT);
onCreate(db);
}
}
Уважаемый Dteuchert, спасибо за ответ. Что насчет моих старых данных таблицы? Будет ли он потерян, если я обновлю свое приложение? В любом случае, для резервного копирования всех моих данных. Пожалуйста, объясните. –
Эй, да, эти данные будут потеряны. Вы можете запрограммировать функцию, которая каким-то образом хранит ваши старые данные и вызывает эту функцию до 'db.execSQL (« DROP TABLE IF EXISTS »+ TABLE_INPUT); – DTeuchert
при изменении элемента таблицы базы данных или значения столбца, то вы должны обновить до данных, чтобы отразить это изменение. Другим способом нет такой таблицы или другой ошибки. , поэтому после изменения в базе данных, если приложение уже загружено, вам необходимо изменить версию базы данных, и вся таблица воссоздается в методе onUpdate().
- 1. SQlite onUpgrade
- 2. Вызов sqlite onUpgrade проблемы
- 3. SQLite onUpgrade() фрустрация
- 4. Android SQLite OnUpgrade Error
- 5. onUpgrade не вызывается в sqlite
- 6. android sqlite onUpgrade не работает
- 7. onUpgrade в базе данных sqlite в android
- 8. Что такое? mark в SQLite
- 9. Что такое индекс в SQLite?
- 10. Android SQLite: использование onUpgrade для обновления данных?
- 11. База данных Sqlite onUpgrade() не называется
- 12. SQLite onUpgrade с 4 версиями базы данных
- 13. Android SQLite не будет выполнять onUpgrade()
- 14. Sqlite Database onupgrade() не обновляет базу данных
- 15. Android Sqlite onUpgrade не копирует новый столбец
- 16. Android SQLite onUpgrade(), создать новую таблицу
- 17. Что такое модель стоимости sqlite?
- 18. Что такое теневая таблица в SQLite?
- 19. Что такое Datatypes в SQLite, поддерживающий андроид
- 20. Что такое «страница» в документации SQLite?
- 21. Что такое столбец типа datetime в SQLite?
- 22. Как использовать OnUpgrade android
- 23. Что такое OO C++-оболочка для sqlite
- 24. Что такое простой Java ORM, поддерживающий Sqlite?
- 25. Что такое rowid базы данных sqlite?
- 26. андроида: onUpgrade на SQLite не будет работать для меня
- 27. Использование onUpgrade() для создания новой таблицы базы данных SQLite Android
- 28. Удалить всю базу данных onUpgrade в Android?
- 29. Что такое синтаксис для «не равных» в SQLite?
- 30. Что такое эквивалент Access '' SELECT DISTINCTROW * FROM ... 'в SQLite?
проверить эту ссылку надеюсь, что это поможет вам http://developer.android.com/intl/ru/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int) –
Какова конкретная проблема, с которой вы сталкиваетесь с 'onUpgrade()'? – laalto
На самом деле у меня есть приложение для домашней автоматизации, которое имеет множество устройств, которые сохраняются в локальном db. Я сомневаюсь, что если какая-либо модернизация, сделанная разработчиком, как она отражается в моем локальном db. Если все таблицы будут заменены, я потеряю все данные. Там все равно для резервного копирования? Пожалуйста, помогите мне. –