10

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

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

4

1 回答 1

7

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

FOREIGN KEY (parent_category) REFERENCES Categories(name)

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

CONSTRAINT parent_category_fk FOREIGN KEY (parent_category) REFERENCES Categories(name)
于 2013-04-12T10:43:17.570 回答