我已經搜索瞭解這個問題的性質,但迄今還沒有任何運氣。Android中的SQLite:外鍵和<表約束>預計
我正在做一個RPG風格的待辦事項列表來教自己的Android/Java和我正在做兩個表:類別(力量,智力等)和任務:名稱,描述,EXP等
我希望每個任務都有一個類別,但我得到一個表約束錯誤。我的代碼如下,並且GitHub鏈接是here。
public void onCreate(SQLiteDatabase db){
setForeignKeyConstraintsEnabled(db);
db.execSQL("CREATE TABLE " + CATEGORY_TABLE_NAME + "(id INTEGER primary key autoincrement NOT NULL, name TEXT, exp INTEGER, level INTEGER)");
db.execSQL("CREATE TABLE " + QUEST_TABLE_NAME + "(id INTEGER primary key autoincrement NOT NULL, name TEXT, description TEXT, expValue INTEGER, category INTEGER NOT NULL, FOREIGN KEY (category) REFERENCES categories (id), date TEXT");
db.execSQL("INSERT INTO " + CATEGORY_TABLE_NAME + "('name', 'exp', 'level') VALUES ('Strength', 0, 0);");
db.execSQL("INSERT INTO " + CATEGORY_TABLE_NAME + "('name', 'exp', 'level') VALUES ('Stamina', 0, 0);");
db.execSQL("INSERT INTO " + CATEGORY_TABLE_NAME + "('name', 'exp', 'level') VALUES ('Intelligence', 0, 0);");
db.execSQL("INSERT INTO " + CATEGORY_TABLE_NAME + "('name', 'exp', 'level') VALUES ('Social', 0, 0);");
db.execSQL("INSERT INTO " + QUEST_TABLE_NAME + "('name', 'description', 'expValue', 'category', 'date') VALUES ('Gym', 'Weightlifting down The Gym', '300', '1', '25/05/2017');");
}
誤差以 '日期的文字' 的到來,和錯誤說:
<table constraint> expected, got 'date'.
這裏有什麼問題嗎?
試着把它(日期文本)之前外鍵我不知道,但我認爲你需要把所有列前外鍵 – crammeur
@crammeur如果我移動日期前FOREIGN KEY位,我得到以下錯誤: ')',DEFERRABLE,MATCH,NOT,ON或逗號預期,文件的意外結束 –
因此更改日期到date1因爲日期是函數 – crammeur