当前位置: 首页 > 知识库问答 >
问题:

在android中执行SQLite时出现语法错误

汪安宁
2023-03-14

我正在尝试使用SQLite数据库在android中本地存储电子邮件。当我第一次调用上下文时。getWritableDatabase(),该数据库尚不存在,已创建。我在create语句中遇到语法错误。。。我的代码看起来像这样。。。

private static final String DATABASE_NAME = "views.db";
    private static final int DATABASE_VERSION = 1;

    public static final String TABLE_VIEWS = "views";

    private static final String KEY_ID = "id";
    private static final String KEY_INDEX = "index";
    private static final String KEY_FROM = "from";
    private static final String KEY_UNREAD = "unread";
    private static final String KEY_SUBJECT = "subject";
    private static final String KEY_BODY = "body";


    // Database creation sql statement
    private static final String CREATE_VIEWS_TABLE = "CREATE TABLE " + TABLE_VIEWS + " ("
            + KEY_ID + " INTEGER PRIMARY KEY," 
            + KEY_INDEX + " INTEGER NOT NULL,"
            + KEY_UNREAD + " TEXT NOT NULL," 
            + KEY_SUBJECT + " TEXT NOT NULL,"
            + KEY_FROM + " TEXT NOT NULL," 
            + KEY_BODY + " TEXT NOT NULL);";

我不熟悉SQLite语法,我一直在寻找导致这种情况的原因,但没有任何结果。知道是什么引起的吗?数据库确实是本地存储此类数据的最佳方式。

准确的错误如下所示。。

07-01 17:54:42.827: E/AndroidRuntime(3036): Caused by: android.database.sqlite.SQLiteException: near "index": syntax error: CREATE TABLE views (id INTEGER PRIMARY KEY,index INTEGER NOT NULL,unread TEXT NOT NULL,subject TEXT NOT NULL,from TEXT NOT NULL,body TEXT NOT NULL);

共有1个答案

易扬
2023-03-14

不能使用关键字index作为表的列名,请改为tbl_index。

 类似资料:
  • 你好,我想用SQLite数据库创建一个JTable。数据应该来自一个SQLite数据库,并存储在这个。现在,在文本字段中输入新的细节。但是,我得到错误消息:“java.sql.SQLException: near”(“:语法错误” 怎么了? 公共静态void main(String args[]){

  • 我试图在Android中创建一个新的SQLite数据库。这是我的onCreate方法: 这会引发语法错误: android.database.sqlite.SQLiteExcture:在"AUTOINCRIMENT"附近:语法错误(代码1):,编译时:创建表event_table(ID INTEGER PRIMARYKEY AUTOINCRIMENT, EVENTNAME TEXT, UniXTI

  • 我的logcat消息: (1)near“INTEGER”:CREATE_SQL android.database.sqlite.sqliteexception中的语法错误异常:编译时:create BOMUL_PLACE(_id INTEGER NOT NULL主键auticrement,NAME TEXT,LAT DOUBLE,LNG DOUBLE,CHECK INTEGER DEFAULT 0

  • /data/data/com。hipipal。qpy3/files/bin/qpython。嘘 导入openpyxl Traceback(最近一次调用最后一次):File",第1行,在File"/data/data/com.hipipal.qpy3/file/lib/python3.2/site-包/openpyxl/init.py",第29行,在从openpyxl.workbook导入Workb

  • 问题内容: 下面是用户单击“ 应用余额” 时的代码 。 这适用于第一部分,用户的余额更新很好,但是当我尝试执行第二条语句时,出现SQL语法错误。是什么原因引起的? 下面是运行此命令时得到的堆栈跟踪。 问题答案: 您的第二个查询缺少子句中的右括号。 代替直接在查询中附加参数,请使用参数化查询。 这样看起来会更干净,更容易编写。最重要的是,它将使您免受SQL Injection 攻击。 这是用于参数化