gpt4 book ai didi

sql-server-2008 - 自引用外键的含义是什么?

转载 作者:行者123 更新时间:2023-12-04 07:05:54 25 4
gpt4 key购买 nike

我查看了一个遗留数据库,发现了几个外键,它们将一列引用到自身。引用的列是主键列。

ALTER TABLE [SchemaName].[TableName]  WITH CHECK ADD  
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])

它的意义是什么?

最佳答案

ALTER TABLE [SchemaName].[TableName]  WITH CHECK ADD  
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])

这个外键是完全多余的,删除它毫无意义。它永远不会被违反,因为一行匹配自身验证约束。

在分层表中,关系将在两个不同的列之间(例如 IdParentId )

至于为什么它很可能是通过使用可视化设计器创建的,如果您右键单击对象资源管理器中的“键”节点并选择“新建外键”,然后关闭对话框而不删除创建的外键,然后创建一些打开的表设计器中的其他更改并保存它会创建这种冗余约束。

关于sql-server-2008 - 自引用外键的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13330840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com