zoukankan      html  css  js  c++  java
  • [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下的数据库文件,查看列表结构,新增列创建成功,问题解决。

  • 相关阅读:
    行为模式-模板方法
    行为模式-策略模式
    行为模式-观察者 模式
    行为模式-责任链模式
    python-json
    mongo资料
    用with管理lock锁
    枚举类使用
    db2常见操作命令
    trancate immediate reuse storage
  • 原文地址:https://www.cnblogs.com/misybing/p/4927302.html
Copyright © 2011-2022 走看看