创建表句中的Sqlite异常

时间:2012-07-30 17:07:15

标签: android sqlite

我有一张database,有两张桌子。最近,我插入了一个新行(key_today),我得到了以下sqlite exception

android.database.sqlite.SQLiteException: near "text": syntax error: create table tasks (_id integer primary key autoincrement, title text not null,location text not null, body text not null ,  goaldate text not null ,  absolutedate text not null ,  currentdate text not null ,  prio text not null,  done text not null,  category text not null,  timespent text not null,  pososto text not null,  father text not null,  check text not null );

我已经更改了方法以包含新行但我真的找不到我做错了什么。

这是我的代码,提前谢谢

public static final String KEY_TITLE = "title";
public static final String KEY_BODY = "body";
public static final String KEY_ROWID = "_id";
public static final String KEY_FATHER="father";//father's id
public static final String KEY_location = "location";
public static final String KEY_GOAL_DATE = "goaldate";
public static final String KEY_ABSOLUTE_DATE = "absolutedate";
public static final String KEY_DATE_CURRENT = "currentdate";
public static final String KEY_PRIO= "prio";
public static final String KEY_DONE = "done";
public static final String KEY_CATEGORY = "category";
public static final String KEY_TIME_SPEND = "timespent";
public static final String KEY_POSOSTO = "pososto";
public static final String KEY_TODAY= "check";

public static final String KEY_STITLE = "atitle";
public static final String KEY_ROID = "_id"; 
public static final String KEY_SCOLOR = "color";


private static final String TAG = "ListDatabase";
/**
 * @uml.property  name="mDbHelper"
 * @uml.associationEnd  
 */
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;

/**
 * Creating   database tables
 */
private static final String DATABASE_CREATE =
    "create table tasks (_id integer primary key autoincrement, "

    + "title text not null,"
    +"location text not null, " 
    + "body text not null , "
    +" goaldate text not null , "
    +" absolutedate text not null , "
    +" currentdate text not null , "
    +" prio text not null, "
    +" done text not null, "
    +" category text not null, "
    +" timespent text not null, "
    +" pososto text not null, "
    +" father text not null, " 
    +" check text not null );";

2 个答案:

答案 0 :(得分:4)

Checka reserved word in SQLite;尝试重命名该列或将其放入SQL语句中的(转义)双引号。

答案 1 :(得分:3)

以下是造成问题的原因:

... check text not null)
    ^^^^^

check是SQLite中的关键字(通常是SQL)。

将它放在这样的双引号中以避免此类问题:

... "check" text not null)