【问题标题】:android SQLite foreign key errorandroid SQLite外键错误
【发布时间】:2012-06-28 10:02:59
【问题描述】:

我一直在为以下错误磨牙:

我正在定义几个表,其中两个必须共享一个值“task_id”。我在我的代码中使用了以下创建语句:

// 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, FOREIGN KEY (taskId) REFERENCES tasks (taskId), session TEXT DEFAULT null, ratA TEXT DEFAULT null, ratB TEXT DEFAULT null, ratC TEXT DEFAULT null, answer TEXT DEFAULT null, condition TEXT DEFAULT null);'.

我浏览了一遍,找不到任何可以解决我的具体问题的东西。在“创建”语句中可以引用外键的位置是否有限制? 感谢您在此问题上提供的任何帮助。

【问题讨论】:

    标签: android sqlite error-handling foreign-keys


    【解决方案1】:

    我认为该语句的格式应如下:

    col_name1 TEXT REFERENCES table_name ( col_name2 )
    

    所以你可以试试:

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

    【讨论】:

    • 做到了。谢谢你的帮助亚历克斯!
    • @foladev,如果它解决了问题,你应该accept the answer :)
    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 2011-07-14
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多