Sqlite升级时向已有表中增长字段

Sqlite升级时向已有表中增长字段

Sqlite数据库升级时,咱们常常会遇到给已有表中增长字段的操做。通常来讲,给已有表中增长字段是数据库操做中的基操,不必再专门写篇blog记录的,可是sqlite对SQL语句支持的不够完全,比方说此次咱们用到的"ALTER TABLE"命令。官方介绍的第一句以下所示:javascript

SQLite supports a limited subset of ALTER TABLE. The ALTER TABLE command in SQLite allows the user to rename a table or to add a new column to an existing table.
复制代码

Sqlite支持“ALTER TABLE”的有限子集,在Sqlite中这个命令容许用户重命名表、向已有表中添加新列。html

那么若是咱们想在一行SQL语句中同时添加多个字段,这个是不能直接实现的,具体缘由看末尾的参考连接2. sqlite alter table add MULTIPLE columns in a single statemen therejava

既然不能一次添加多个,那么咱们一次添加一个总行吧,这里给出一个实现方式,针对添加多个column的需求,这里对应的建立多条sql语句,在升级时依次执行:sql

// sqlite 不支持一次增长多列,只能一次增长一列。
    val sqlsV2 = arrayOf("alter table ${TABLE_NAME} add column age VARCHAR(255)",
            "alter table ${TABLE_NAME} add column gender VARCHAR(255)")
复制代码

依次执行数组中的sql语句:数据库

override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
        Log.e(TAG, "onUpgrade oldVersion:$oldVersion newVersion:$newVersion")
        // 1 升级到 2
        if (oldVersion < 2) {
            Log.e(TAG, "onUpgrade 1~2")
            sqlsV2.forEach {
                db?.execSQL(it)
            }
        }
    }
复制代码

参考:数组

1. 菜鸟教程ide

2. sqlite alter table add MULTIPLE columns in a single statemen therespa

3. sqlite官网——Alter Tablecode

相关文章
相关标签/搜索