这是我的代码:
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: near "CREATE TABLE": syntax error (code 1): , while compiling: CREATE TABLE PapersTable(_id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, author TEXT, state TEXT);
最佳答案
CREATE TABLE
语法是正确的,正如您发布的那样。
我怀疑 CREATE
和 TABLE
之间存在不间断空格 (ASCII 0xA0)。将其替换为常规空格 (ASCII 0x20)。这可以解释您发布的语法错误:解析器将 CREATE TABLE
视为单个未知标记,而不是两个单独的已知标记 CREATE
和 TABLE
.
绝对错误的是,您在作为参数传递给函数的 SQLiteDatabase db
上调用了 db.close()
。你应该只关闭你自己打开的数据库,以这种方式关闭它会导致异常,尽管是一个不同的异常。
关于android - "CREATE TABLE"附近的 SQLite 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532339/