android.database.sqlite.SQLiteException:接近“1”:语法错误(代码1):编译时
问题描述:
我在Android应用程序中收到我的SQLite数据库错误。这是我第一次遇到这个错误,所以我需要帮助。android.database.sqlite.SQLiteException:接近“1”:语法错误(代码1):编译时
这里是我的代码:
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_WE_TABLE = "CREATE TABLE " + Constants.TABLE_NAME +
"("+ Constants.KEY_ID + " INTEGER PRIMARY KEY , " +
Constants.JOB_TITLE + " TEXT NOT NULL , " + Constants.JOB_DESCRIPTION +
" TEXT NOT NULL , " + Constants.START_YEAR + " TEXT NOT NULL , " +
Constants.END_YEAR + " TEXT NOT NULL);";
db.execSQL(CREATE_WE_TABLE);
}
而且我的错误:
android.database.sqlite.SQLiteException: near "1": syntax error (code 1): , while compiling: CREATE TABLE workexperience(_id INTEGER PRIMARY KEY , title TEXT NOT NULL , description TEXT NOT NULL , 1 TEXT NOT NULL , 1 TEXT NOT NULL);
出了什么问题?
答
尝试打印您的创建表语句。它清楚地表明语法不正确。纠正语法,然后它会正常工作。
编辑:如在评论部分中建议你不能有列2列名称为1,请更改它的工作。 (;)
答
请将此代码 你只需要一个分号粘贴在最后像
String CREATE_WE_TABLE = "CREATE TABLE " + Constants.TABLE_NAME +
"("+ Constants.KEY_ID + " INTEGER PRIMARY KEY , " +
Constants.JOB_TITLE + " TEXT NOT NULL , " + Constants.JOB_DESCRIPTION +
" TEXT NOT NULL , " + Constants.START_YEAR + " TEXT NOT NULL , " +
Constants.END_YEAR + " TEXT NOT NULL)";
把一些'String',而不是'int'号'Constants.START_YEAR' –
校验值Constants.START_YEAR和Constants中的常量.END_YEAR – akhilesh0707
经过描述(在您的查询中)后,您有'START_YEAR'和'END_YEAR',两者都是第一个整数。你不能有一个名为'1'的列。你尤其不能有两列名为'1'。 –