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