在同一个表SQLite上创建外键

时间:2013-04-12 09:01:47

标签: sqlite foreign-keys ddl

最近我开始使用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时,它给了我一个外键错误。

有谁知道为什么这不起作用?

1 个答案:

答案 0 :(得分:4)

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

FOREIGN KEY (parent_category) REFERENCES Categories(name)

如果要命名FK约束,可以使用CONSTRAINT关键字的前缀来执行此操作,如下所示:

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