Android sqlite语法错误:附近")"

时间:2015-01-27 10:52:52

标签: java android mysql sqlite android-sqlite

我在android中创建sqlite db时遇到错误。

我的代码是:

public static final String TABLE_NAME = "user";
    public static final String COL1_USER_ID = "USER_ID";
    public static final String COL2_USER_NAME = "USER_NAME";
    public static final String COL3_IMEI_CODE = "IMEI_CODE";
    public static final String COL4_REGISTRATION_ID = "REGISTRATION_ID";
    public static final String COL5_MOBILE_NUMBER = "MOBILE_NUMBER";

    public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + _ID + " INTEGER PRIMARY KEY,"+ COL1_USER_ID + TEXT_TYPE + COMMA_SEP + COL2_USER_NAME + TEXT_TYPE
            + COMMA_SEP + COL3_IMEI_CODE + TEXT_TYPE + COMMA_SEP + COL4_REGISTRATION_ID + VARCHAR_TYPE + COMMA_SEP + COL5_MOBILE_NUMBER + TEXT_TYPE + COMMA_SEP + ")";

错误信息是:

android.database.sqlite.SQLiteException: near ")": syntax error (code 1): , while compiling: CREATE TABLE user(_id INTEGER PRIMARY KEY,USER_ID TEXT,USER_NAME TEXT,IMEI_CODE TEXT,REGISTRATION_ID VARCHAR(255),MOBILE_NUMBER TEXT,)

如何解决这个问题?

2 个答案:

答案 0 :(得分:7)

您应该最后删除+ COMMA_SEP

校正的

String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + _ID + " INTEGER PRIMARY KEY,"+ COL1_USER_ID + TEXT_TYPE + COMMA_SEP + COL2_USER_NAME + TEXT_TYPE
    + COMMA_SEP + COL3_IMEI_CODE + TEXT_TYPE + COMMA_SEP + COL4_REGISTRATION_ID + VARCHAR_TYPE + COMMA_SEP + COL5_MOBILE_NUMBER + TEXT_TYPE + ")";

答案 1 :(得分:0)

替换下面的代码行而不是你的代码。

public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + _ID + " INTEGER PRIMARY KEY,"+ COL1_USER_ID + TEXT_TYPE + COMMA_SEP + COL2_USER_NAME + TEXT_TYPE
            + COMMA_SEP + COL3_IMEI_CODE + TEXT_TYPE + COMMA_SEP + COL4_REGISTRATION_ID + VARCHAR_TYPE + COMMA_SEP + COL5_MOBILE_NUMBER + TEXT_TYPE + ")";

最后还有一个逗号,实际上没有必要。