数据库升级 给原有的表增加字段
Logcat报了如下的错误:android.database.sqlite.SQLiteException: near ",": syntax error (code 1): , while compiling: alter table playhistory add src_type INTEGER,total_time long,definition integer,current_time long,web_type integer,total_episodes integer
分析:
由于alter table tablename add 后面加了多个列导致失败。
如果要增加多个列,需要把这句话拆分成一个个单独的alter table语句。
从官方的图例上可以看出,alter table tablename add column 本身不支持Loop循环。
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion < 2) { new_column = "alter table " + PlayHistoryTable.TABLE_NAME + " add " + PlayHistoryTable.SRC_TYPE + " integer"; db.execSQL(new_column); new_column = "alter table " + PlayHistoryTable.TABLE_NAME + " add " + PlayHistoryTable.TIME_TOTAL + " long"; db.execSQL(new_column); new_column = "alter table " + PlayHistoryTable.TABLE_NAME + " add " + PlayHistoryTable.DEFINITION + " integer"; db.execSQL(new_column); new_column = "alter table " + PlayHistoryTable.TABLE_NAME + " add " + PlayHistoryTable.CURRENT_TIME + " long"; db.execSQL(new_column); new_column = "alter table " + PlayHistoryTable.TABLE_NAME + " add " + PlayHistoryTable.WEB_TYPE + " integer"; db.execSQL(new_column); new_column = "alter table " + PlayHistoryTable.TABLE_NAME + " add " + PlayHistoryTable.TOTAL_EPISODES + " integer"; db.execSQL(new_column); db.execSQL(SQL_CREATE_DOWNLOAD); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。