我正在遵循这个教程
可以任何身体请让我清楚这段代码.
// Creating Tables @Override public void onCreate(sqliteDatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_PH_NO + " TEXT" + ")"; db.execsql(CREATE_CONTACTS_TABLE); } // Upgrading database @Override public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { // Drop older table if existed db.execsql("DROP TABLE IF EXISTS " + TABLE_CONTACTS); // Create tables again onCreate(db); }
问题
onUpgrade()的目的是什么;方法?
什么时候叫?正如文档所说,当需要升级数据库时调用它是什么意味着通过升级数据库?
重要
为什么我们在这个方法中删除表并重新创建?
提前致谢.
解决方法
onUpgrade基本上用于处理任何新版本应用程序的新数据库更改(可能是新列添加,表添加).
在onUpgrade中并不总是需要删除表,这取决于您的用例.如果要求不要保留旧版本应用程序中的数据,那么drop应该会有所帮助,但是如果它更改架构那么它应该只有更改脚本.