我有一个表 Categories
,其中包含 Id、ParentId
列(用于可以具有任何嵌套级别的“子类别”)和其他列。使用 SQL Server 2012 我无法在同一个表中创建外键,FK_Categories_Categories
(Id -> ParentId
)。
错误信息是
'Categories' table
- Unable to create relationship 'FK_Categories_Categories'. The ALTER TABLE statement conflicted with the FOREIGN KEY SAME TABLE constraint "FK_Categories_Categories". The conflict occurred in database "pokupaykadb", table "dbo.Categories", column 'Id'.
这需要级联删除子类别。有什么办法可以解决?最好是一些属性,比如通过外键从另一个表中级联删除
最佳答案
如果有不符合约束条件的孤立记录 - 在创建外键之前删除它们。
通常很少有记录不符合新约束条件,并且 DBMS 不允许创建约束条件。
关于sql-server - 外键与同一张表中的主键链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986987/