sql-server – 为什么表使用其主键作为自身的外键
发布时间:2021-05-25 17:54:09 所属栏目:MsSql教程 来源:网络整理
导读:通过查看数据库,我遇到了一个使用其主键作为自身外键的表. 我已经看到一个表可以有一个外键来构建一个层次结构,但是它会使用另一个列来引用主键. 由于主键是唯一的,在这种情况下行不能仅指向自身吗?这似乎是一个同义反复的联系,因为如果我已经有了这一行,那
|
通过查看数据库,我遇到了一个使用其主键作为自身外键的表. 我已经看到一个表可以有一个外键来构建一个层次结构,但是它会使用另一个列来引用主键. 由于主键是唯一的,在这种情况下行不能仅指向自身吗?这似乎是一个同义反复的联系,因为如果我已经有了这一行,那么我已经有了这一行. 这有什么理由可以吗? 我确信约束是以这种方式编写的(不仅仅是查看图表),因为同一个表和列用于定义的两半. 解决方法像你说的.引用同一表的FOREIGN KEY约束通常用于层次结构,它将使用另一列来引用主键.一个很好的例子是员工表:EmployeeId Int Primary Key EmployeeName String ManagerId Int Foreign key going back to the EmployeeId 所以在这种情况下,表中有一个外键返回自身.所有经理都是员工,因此ManagerId实际上是经理的EmployeeId. 另一方面,如果你的意思是有人使用EmployeeId作为外键返回到Employee表,那么这可能是一个错误.我确实进行了一次测试,这是可能的,但它没有任何实际用途. CREATE TABLE Employee (EmployeeId Int PRIMARY KEY,EmployeeName varchar(50),ManagerId Int);
ALTER TABLE Employee ADD CONSTRAINT fk_employee
FOREIGN KEY (EmployeeId) REFERENCES Employee(EmployeeId); (编辑:天瑞地安资讯网_黄海网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SQL Server日志文件大小管理
- 在SQL查询中转义值(带有SQL连接器的C#)
- HTML+Sass实现HambergurMenu(汉堡包式菜单)
- sql-server – sql server数据大小限制
- sql-server – 在同一个VM上运行2个SQL Server 2014实例是否
- 基本sql:在一次查询中多次选择同一列,每次出现时都依赖于不
- SQL Server:带XML输出的两级GROUP BY
- sql serve中page结构怎么理解?一文带你看明白page结构
- 使用.NET或MS SQL模拟MySql的密码()加密
- sql-server – 如果是肯定的,请汇总所有项目.如果是负数,则
站长推荐
热点阅读


