【问题标题】:How to update a table in SQLite which already exist on the device?如何更新设备上已经存在的 SQLite 表?
【发布时间】:2019-08-28 07:16:20
【问题描述】:

我在应用程序的第一个版本中在 SQLite 数据库中创建了一个表。我想更新该数据库,添加一个新表而不删除以前的数据。该怎么做?

【问题讨论】:

  • 你使用的是 Room 还是 SQLiteHelper?
  • 抱歉给您带来了困惑,但问题是关于更新数据库
  • 我用过 SQLiteHelper

标签: android mysql sqlite


【解决方案1】:
  1. 您必须更新数据库版本(如果您当前的版本是 1,则将其增加到 2)
  2. 在onUpgrade中执行查询创建表

按照示例进行:

class YourDbHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
    override fun onCreate(db: SQLiteDatabase) {
        db.execSQL(SQL_CREATE_ENTRIES)
    }
    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        db.execSQL(SQL_UPDATE_ENTRIES) //create new table
        onCreate(db)
    }
    override fun onDowngrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        onUpgrade(db, oldVersion, newVersion)
    }
    companion object {
        // If you change the database schema, you must increment the database version.
        const val DATABASE_VERSION = 1
        const val DATABASE_NAME = "YourDb.db"
    }
}
猜你喜欢
  • 1970-01-01
  • 2021-10-24
  • 2013-11-15
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多