2013-03-06 72 views
0
public static final String TABLE_TASKS = "tasks"; 
public static final String COLUMN_ID = "_id"; 
public static final String COLUMN_TASK = "task"; 
public static final String COLUMN_TIME = "time"; 
public static final String COLUMN_INITDATE = "initdate"; 
public static final String COLUMN_PRIORITY="priority"; 

public static final String TABLE_REPEAT = "alarms"; 
public static final String COLUMN_AID = "_aid"; 
public static final String COLUMN_TID = "tid"; 

public static final String COLUMN_DAYS =「days」;android外鍵。程序崩潰

private static final String DATABASE1_CREATE = "create table " + TABLE_TASKS + "(" 
+ COLUMN_ID + " integer primary key autoincrement, "+ COLUMN_TASK 
+ " text not null, "+ COLUMN_TIME+" integer not null, "+ COLUMN_INITDATE+" integer not null, "+ COLUMN_PRIORITY +" integer);"; 

private static final String DATABASE2_CREATE = "create table " + TABLE_REPEAT + "(" 
     + COLUMN_AID + " integer primary key autoincrement, "+ " FOREIGN KEY (" + COLUMN_TID + ") REFERENCES " + TABLE_TASKS + " (" + COLUMN_ID + "), "+ COLUMN_DAYS + " text not null);"; 

我logcat的是: 9月3日至6日:17:07.051:E/AndroidRuntime(1029):了java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.habitator/com。示例.abitator.Habitator}:android.database.sqlite.SQLiteException:外鍵定義中的未知列「tid」(代碼1):,編譯時:create table報警(_aid整數主鍵自動增量,FOREIGN KEY(tid)REFERENCES任務_id),天文字不爲空);

請幫我找到錯誤!爲什麼我的程序崩潰?

回答

3

試試這個查詢。

create table alarms(_aid integer primary key autoincrement, tid integer FOREIGNKEY REFERENCES tasks (_id), days text not null); 

https://www.sqlite.org/foreignkeys.html

+0

日Thnx亞爾.. DIS一個工作得很好:) – AnRu 2013-03-06 10:17:32

+0

我是做錯了也。我使用了FOREIGN KEY(payment_method)REFERENCES payment_method(id),但我在使用外鍵定義(代碼1)時發生錯誤「unknown列payment_method:」....我最終使用了payment_method INTEGER FOREIGNKEY REFERENCES payment_method(id)和它工作完美。 – Binaryrespawn 2015-10-14 16:17:14