在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下的數據庫文件,查看列表結構,新增列創建成功,問題解決。