在SQLite数据库创建语句增加列,运行后报错:no such column
在语法规范的前提下,即
//SQLite数据库创建,逗号与空格须严格
String CREATE_NOTE = "create table "
+ NotepadEntity.TABLE_NOTE
+ " (" + NotepadEntity.NOTE_ID + " integer primary key autoincrement,"
+ NotepadEntity.NOTE_TITLE + " varchar not null," //此列为修改语句后增加
+ NotepadEntity.NOTE_CONTENT + " text not null,"
+ NotepadEntity.NOTE_CREATE_DATE + " text);"; SQLiteDatabase db;
db.execSQL(CREATE_NOTE);
仍无法编译通过,其原因是SQLite创建命令执行过一次,数据库文件已存在,即使语句有变更,也没有再执行。
解决办法:
打开DDMS工具找到“File Explorer”,定位到项目文件里的数据库文件列表(展开到/data/data/<package name>/databases)
(可将数据库文件导出电脑,用SQLite Database Browser等工具查看是否有列数据未创建)
删除该数据库文件及其journal文件,返回工程再次运行,程序检测到数据库为空,则执行创建命令,编译通过。
此时再导出DDMS下的数据库文件,查看列表结构,新增列创建成功,问题解决。