[Android开发]Android SQLite Upgrade
16lz
2021-01-23
Android SQLite Upgrade
Android上使用SQLite时,会有一个版本号。更改版本号会触发onUpgrade
这个方法。
private static int DBVERSION = 3;...super(context, DB_NAME, null, DBVERSION);
onUpgrade
This method executes within a transaction, If an exception is thrown, all changes will automatically be rolled back.
onUpgrade方法有三个参数,分别为database, oldVersion, newVersion
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
其中oldVersion是应用未更新前的版本号,newVersion是更新后数据库的版本号。
通过比较版本号,可以执行相应的更新操作。
由Android文档可知,SQLiteOpenHelper中的onUpgrade
是在一个sql transaction中。因而,直接在里面执行语句即可,不用使用db.beginTransaction();
关于android.database.sqlite.SQLiteException: Can't upgrade read-only database
的错误。在更新数据库时,一不小心就会出现这个错误。这个错误很可能由于onUpgrade
中的SQL语句写的不对或执行时机不对。
更多相关文章
- Android 常用语句
- Android studio包冲突错误 IncompatibleClassChangeError
- Android Stadio 错误处理集
- android xml 布局错误
- INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES错误解决方法
- Android WebView自定义处理错误页面显示(404等)
- android 官方文档中的一些错误收集