Android 如何在现有Sqlite数据库中添加新表

Android 如何在现有Sqlite数据库中添加新表,android,sqlite,android-studio,android-sqlite,Android,Sqlite,Android Studio,Android Sqlite,我在sqlite中创建了一个DB,在这个DB中创建了一个表。现在我想在这个数据库中再添加一个表(posts_table)。 但当我运行应用程序时,数据库中不会创建新表 @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL( "create table users_table " +

我在sqlite中创建了一个DB,在这个DB中创建了一个表。现在我想在这个数据库中再添加一个表(posts_table)。 但当我运行应用程序时,数据库中不会创建新表

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(
                "create table users_table " +
                        "(id integer primary key, username text)"
        );
        sqLiteDatabase.execSQL(
                "create table posts_table " +
                        "(id integer primary key)"
        );
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion ) {
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS users_table");
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS posts_table");

        onCreate(sqLiteDatabase);
    }


您需要卸载应用程序(然后数据库文件将被删除,所有当前数据将丢失)或增加数据库版本号,在这种情况下,将调用onUpgrade方法删除表(如果存在,则会丢失表中的所有数据)然后调用onCreate方法

  • 数据库版本号通常是传递给SQLiteOpenHelper的第四个参数,不过如果您使用构造函数传递打开参数(在这种情况下,它是第三个参数),请参阅
在数据库的生存期内,onCreate方法只会自动调用一次,以便数据库保持不变