最近我开始使用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时,它给了我一个外键错误。
有谁知道为什么这不起作用?
答案 0 :(得分:4)
问题是您的FK子句语法错误。它应该是:
FOREIGN KEY (parent_category) REFERENCES Categories(name)
如果要命名FK约束,可以使用CONSTRAINT
关键字的前缀来执行此操作,如下所示:
CONSTRAINT parent_category_fk FOREIGN KEY (parent_category) REFERENCES Categories(name)