在同一表上创建外键SQLite

use*_*652 5 sqlite ddl foreign-keys

最近,我开始使用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)
)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在SQLiteStudio中执行SQL时,外键给我一个错误。

有人知道为什么这行不通吗?

Don*_*ows 7

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

FOREIGN KEY (parent_category) REFERENCES Categories(name)
Run Code Online (Sandbox Code Playgroud)

如果要命名 FK 约束,请使用CONSTRAINT关键字前缀来命名,如下所示:

CONSTRAINT parent_category_fk FOREIGN KEY (parent_category) REFERENCES Categories(name)
Run Code Online (Sandbox Code Playgroud)