Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android SQLite外键错误_Android_Sqlite_Error Handling_Foreign Keys - Fatal编程技术网

android SQLite外键错误

android SQLite外键错误,android,sqlite,error-handling,foreign-keys,Android,Sqlite,Error Handling,Foreign Keys,我一直在为以下错误咬牙切齿: 我定义了几个表,其中两个表必须共享一个值“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 autoincre

我一直在为以下错误咬牙切齿:

我定义了几个表,其中两个表必须共享一个值“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/数据库(17404):准备“创建表rat(_idinteger主键自动递增,timeStamp DATETIME DEFAULT null,taskId integer NOT null,外键(taskId)引用任务(taskId)”时0x25afb0出现故障1(接近“会话”:语法错误),会话文本默认为空,ratA文本默认为空,ratB文本默认为空,ratC文本默认为空,应答文本默认为空,条件文本默认为空);'

我看了一遍,找不到任何能解决我具体问题的东西。在“create”语句中,在何处可以引用外键有限制吗?
感谢您在这个问题上提供的帮助。

我认为声明的格式应如下所示:

col_name1 TEXT REFERENCES table_name ( col_name2 )
所以你可以试试:

KEY_RAT_TASKID + " REFERENCES " + TASKS_TABLE + "(" + KEY_TASKS_TASKID + ")"

我认为声明的格式应如下:

col_name1 TEXT REFERENCES table_name ( col_name2 )
所以你可以试试:

KEY_RAT_TASKID + " REFERENCES " + TASKS_TABLE + "(" + KEY_TASKS_TASKID + ")"

成功了。谢谢你的帮助,亚历克斯@foladev,如果它解决了问题,你应该:)就是这样。谢谢你的帮助,亚历克斯@foladev,如果它解决了问题,你应该:)