【问题标题】:How to add a new table in existing Sqlite DB如何在现有 Sqlite DB 中添加新表
【发布时间】:2021-07-04 23:20:52
【问题描述】:

我在 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);
    }

【问题讨论】:

    标签: android sqlite android-studio android-sqlite


    【解决方案1】:

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

    • 数据库版本号通常是传递给 SQLiteOpenHelper 的第 4 个参数,但如果您使用构造函数来传递开放参数(在这种情况下它是第 3 个参数),请参阅SQLiteOpenHelper

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

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多