数据库
首页 > 数据库> > android-“创建表”附近的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().您应该只关闭自己打开的数据库,并且以这种方式关闭它会导致异常,尽管这是一个不同的异常.

标签:android,sqlite,syntax-error
来源: https://codeday.me/bug/20191012/1900211.html