当前位置:首页 > 数据库 > SQlite

android-“创建表”附近的SQLite语法错误

这是我的代码:

    String CREATE_DATABASE = "CREATE?TABLE " + TABLE_NAME + "("  + 
            KEY_ID + " INTEGER?PRIMARY?KEY?AUTOINCREMENT, " + 
            "title TEXT, "+
            "author TEXT, "+
            "state TEXT);";

    db.execSQL(CREATE_DATABASE);

LogCat说:12-11 23:43:50.553:E / AndroidRuntime(3706):android.database.sqlite.SQLiteException:在“ CREATETABLE”附近:语法错误(代码1):,编译时:CREATETABLE PapersTable(_id INTEGERPRIMARY KEYAUTOINCREMENT,标题TEXT,作者TEXT,状态TEXT);

解决方法:

发布后,CREATE TABLE语法就可以了.

我怀疑CREATE和TABLE之间有一个不间断的空格(ASCII 0xA0).将其替换为常规空格(ASCII 0x20).这将解释您发布的语法错误:解析器将CREATE TABLE视为单个未知令牌,而不是作为两个单独的已知令牌CREATE和TABLE.

绝对错误的是,您在传递给函数的参数SQLiteDatabase db上调用db.close().您应该只关闭自己打开的数据库,并且以这种方式关闭它会导致异常,尽管这是一个不同的异常.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!