繁体   English   中英

如何在现有 Sqlite DB 中添加新表

[英]How to add a new table in existing Sqlite DB

我在 sqlite 中创建了一个数据库,并在这个数据库中创建了一个表。 现在我想在这个数据库中再添加一个表(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 的第四个参数,但如果您使用构造函数传递开放参数(在这种情况下是第三个参数),请参阅SQLiteOpenHelper

onCreate方法只会在数据库的生命周期内自动调用一次,以便数据库持续存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM