2012-01-12 58 views
1

这是否支持?我试图创建一个表,但编译时出现语法错误。在Android中使用外键创建SQLite数据库?

private static final String ROOM_CREATE = 
     "create table room (_id integer primary key autoincrement, " + 
     "facility integer not null, FORIEGN KEY (facility) REFERENCES facility(_id));"; 
+0

[Android中使用SQLite的外键约束可能重复?在删除级联](http://stackoverflow.com/questions/2545558/foreign-key-constraints-in-android-using-sqlite-on-delete-cascade) – 2012-01-12 19:34:51

+0

这是可能的。从编译语法错误可能是不同的,你可以发布你得到的错误? – kosa 2012-01-12 19:37:54

+0

FORIEGN KEY ...语法错误 – Mirko 2013-07-30 10:44:19

回答

0

一些伟大的答案,特别是@sfratini在FOREIGN关键字中发现错字。我是否也可以建议您通过使用命令行客户端(如“Windows预编译二进制文件”(请参阅​​http://sqlite.org/download.html))排除SQL语句的故障。这样,您可以在将它们放入应用程序之前验证CREATE TABLE和INSERT语句。

0

您可以创建外键,但你必须在SQL,使执法的SQLite与

PRAGMA foreign_keys = ON; 
-1

facility in facility(_id)必须指表名称。您也正在为列定义相同的名称。请更改表名并重试。