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