2013-04-12 51 views
2

最近,我开始使用SQLite(根据需要为我的研究),我就翻过几个SQLite的限制,我想知道:不能SQLite的创建在同一个表的外键?例如。这是我的代码:创建于同一表SQLite的外键

CREATE TABLE Categories 
(
    name varchar(20), 
    parent_category varchar(20) NULL, 
    PRIMARY KEY(name), 
    FOREIGN KEY parent_category_fk(parent_category) REFERENCES Categories(name) 
) 

但它给我一个错误外键,当我尝试执行在SQLiteStudio的SQL。

有谁知道这是为什么不工作?

回答

2

的问题是,您对FK子句错误的语法。它应该是:

FOREIGN KEY (parent_category) REFERENCES Categories(name) 

如果您想要命名的FK约束,你这样做,与CONSTRAINT关键字的前缀,像这样:

CONSTRAINT parent_category_fk FOREIGN KEY (parent_category) REFERENCES Categories(name)