最近在做Android数据库数据维护,新版本要在原有的表的基础上新增三个列。查询标准SQL语法,最初的执行语句如下:

1 2 3 String ADD_COLUMNS = "ALTER TABLE mytable ADD (source INTEGER DEFAULT 0, time TEXT, dura TEXT)" ;   this .execQuery(ADD_COLUMNS);

在执行这条语句的时候,程序崩溃,崩溃信息如下:

SQLiteException on:near "(":syntax error(code 1): while compiling:ALTER TABLE mytable ADD (source INTEGER DEFAULT 0, time TEXT, dura TEXT)

把在括号(有语法错误,那我就把括号去掉,执行语句换成:

1 2 3 String ADD_COLUMNS = "ALTER TABLE mytable ADD source INTEGER DEFAULT 0, time TEXT, dura TEXT" ;   this .execQuery(ADD_COLUMNS);

程序崩溃依旧,崩溃信息如下:

SQLiteException on:near ",":syntax error(code 1): while compiling:ALTER TABLE mytable ADD (source INTEGER DEFAULT 0, time TEXT, dura TEXT)

逗号附近有语法错误。

那么在SQLite中如何使用alter命令添加多列呢?

不要挣扎了,SQLite的alter不支持添加多列,一列一列来吧:

1 2 3 4 5 6 7 String ADD_COLUMNS_SOURCE = "ALTER TABLE mytable ADD source INTEGER DEFAULT 0" ; String ADD_COLUMNS_TIME = "ALTER TABLE mytable ADD time TEXT" ; String ADD_COLUMNS_DURA = "ALTER TABLE mytable ADD dura TEXT" ;   this .execQuery(ADD_COLUMNS_SOURCE); this .execQuery(ADD_COLUMNS_TIME); this .execQuery(ADD_COLUMNS_DURA);

下面是SQLite提供的alter语法:

SQLite alter table语法

更多参考:
http://www.sqlite.org/lang_altertable.html

更多相关文章

  1. Android学习记录:界面设计
  2. Android项目命名规范
  3. Android(安卓)模糊搜索rawquery bind or column index out of ra
  4. android页面切换仿iphone从右往左
  5. Received status code 400 from server: Bad Request
  6. android studio中android.support.v7.widget.RecyclerView;包找
  7. sqlite3 常用命令 for android
  8. android contentprovider 查询时候使用limit限定
  9. Smali语法基础知识

随机推荐

  1. Android(安卓)Service中给其他的组件回传
  2. 我来教大家怎样在windows下载android源码
  3. 让用户不再遭遇ANR
  4. 对Android(安卓)opengl ES世界坐标系和纹
  5. 【Android】Intent传递数据量过大的问题a
  6. [Android开发实用技巧] Android模拟器打
  7. android ueventd 本地native部分源码分析
  8. [Android篇]Android(安卓)Studio + Genym
  9. 【AS】Task '' not found in root projec
  10. 实现android应用程序自动打包(Ant+proguar