[O] SQLite數據庫報錯:no such column


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM