私は次のバグで歯を磨いてきました:
いくつかのテーブルを定義していますが、そのうちの2つは値「task_id」を共有する必要があります。コードで次のcreateステートメントを使用しています。
// SQL Statement to create new Tasks table
private static final String TASKS_TABLE_CREATE = "create table " + TASKS_TABLE
+ (" (" + KEY_TASKS_TASKID + " integer primary key autoincrement, ")
+ (KEY_TASKS_TASK + " TEXT, ")
+ (KEY_TASKS_SESSION + " TEXT, ")
+ (KEY_TASKS_CONDITION + " TEXT);");
// SQL Statement to create new RAT table
private static final String RAT_TABLE_CREATE = "create table " + RAT_TABLE
+ (" (" + KEY_ID + " integer primary key autoincrement, ")
+ (KEY_RAT_TIMESTAMP + " DATETIME DEFAULT null, ")
+ (KEY_RAT_TASKID + " INTEGER NOT NULL, ")
+ ("FOREIGN KEY(" + KEY_RAT_TASKID + ") REFERENCES ")
+ (TASKS_TABLE + "(" + KEY_TASKS_TASKID + "), ")
+ (KEY_RAT_SESSION + " TEXT DEFAULT null, ")
+ (KEY_RAT_RAT_A + " TEXT DEFAULT null, ")
+ (KEY_RAT_RAT_B + " TEXT DEFAULT null, ")
+ (KEY_RAT_RAT_C + " TEXT DEFAULT null, ")
+ (KEY_RAT_ANSWER + " TEXT DEFAULT null, ")
+ (KEY_RAT_CONDITION + " TEXT DEFAULT null);");
次のようなSQL例外が発生します。
06-26 20:24:49.759:E / Database(17404):'create table rat(_id integer primary key autoincrement、timeStamp DATETIME DEFAULT null、taskId INTEGER NOT NULL、外部キー(taskId)REFERENCESタスク(taskId)、セッションTEXT DEFAULT null、ratA TEXT DEFAULT null、ratB TEXT DEFAULT null、ratC TEXT DEFAULT null、回答TEXT DEFAULT null、条件TEXT DEFAULT null);'。
調べてみましたが、特定の問題に対処するものが見つかりません。'create'ステートメントのどこで外部キーを参照できるかについての制約はありますか?この問題について助けてくれてありがとう。