我一直在尝试让外键在我的 Android SQLite 数据库中工作。我尝试过以下语法,但它给了我强制关闭:
private static final String TASK_TABLE_CREATE = "create table "
+ TASK_TABLE + " (" + TASK_ID
+ " integer primary key autoincrement, " + TASK_TITLE
+ " text not null, " + TASK_NOTES + " text not null, "
+ TASK_DATE_TIME + " text not null, FOREIGN KEY ("+TASK_CAT+") REFERENCES "+CAT_TABLE+" ("+CAT_ID+"));";
有什么想法我可能做错了什么吗?如果您需要查看其他表结构,那么我可以,它只是第二个表的一个非常简单的结构,带有 ID 和名称。
Edit:
这是错误:
03-13 13:42:35.389:
错误/AndroidRuntime(312):原因:
android.database.sqlite.SQLiteException:
国外未知专栏“taskCat”
关键定义:创建表提醒
(_id 整数主键
自动增量,task_title 文本不是
null,注释文本不为空,
提醒日期时间文本不为空,
外键(taskCat)参考
类别(_id));
你必须定义你的TASK_CAT
首先列,然后在其上设置外键。
private static final String TASK_TABLE_CREATE = "create table "
+ TASK_TABLE + " ("
+ TASK_ID + " integer primary key autoincrement, "
+ TASK_TITLE + " text not null, "
+ TASK_NOTES + " text not null, "
+ TASK_DATE_TIME + " text not null,"
+ TASK_CAT + " integer,"
+ " FOREIGN KEY ("+TASK_CAT+") REFERENCES "+CAT_TABLE+"("+CAT_ID+"));";
您可以在 sqlite 外键上找到更多信息doc http://www.sqlite.org/foreignkeys.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)