3

私はdatabase2つのテーブルを持っています。最近、私は新しい行(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 );";
4

2 に答える 2

4

CheckSQLite の予約語です。その列の名前を変更するか、SQL ステートメントで (エスケープされた) 二重引用符で囲みます。

于 2012-07-30T17:20:06.157 に答える
3

問題の原因は次のとおりです。

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

checkSQLite(およびSQL一般)のキーワードです。

このような問題を回避するには、次のように二重引用符で囲んでください。

... "check" text not null)
于 2012-07-30T17:19:04.753 に答える