sql-server - 外键与同一张表中的主键链接

标签 sql-server sql-server-2012 foreign-key-relationship

我有一个表 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'.

这需要级联删除子类别。有什么办法可以解决?最好是一些属性,比如通过外键从另一个表中级联删除

http://i.stack.imgur.com/kXiMS.png

最佳答案

如果有不符合约束条件的孤立记录 - 在创建外键之前删除它们。

通常很少有记录不符合新约束条件,并且 DBMS 不允许创建约束条件。

关于sql-server - 外键与同一张表中的主键链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986987/

相关文章:

c# - 从数据库中获取特定时间间隔的值

sql-server - SQL Server SSIS 和 Oracle 数据泵

tsql - 如何使用批量插入 csv 到日期时间格式正确的 sql server?

mysql - MySQL推断随机查询的外键关系

sql-server - 数据库中不可见的特殊字符

SQL INSERT INTO WITH SELECT 查询

SQL Join/Pivot/Unpivot = 疯狂

ssis - 如何清理 SSISDB?

mysql - mysql数据库中外键和触发器的基本使用

python - Django:列出模型的所有反向关系