sql – 外键是否可以引用同一个表中的主键?
发布时间:2021-01-23 10:52:29 所属栏目:MsSql教程 来源:网络整理
导读:我只是认为答案是错误的,因为外键没有唯一性属性. 但是有些人说可以自己加入桌子. 我是SQL的新手.如果是真的请解释如何以及为什么? Employee table| e_id | e_name | e_sala | d_id ||---- |------- |----- |--------|| 1 | Tom | 50K | A || 2 | Billy | 15
|
我只是认为答案是错误的,因为外键没有唯一性属性. 但是有些人说可以自己加入桌子. Employee table | e_id | e_name | e_sala | d_id | |---- |------- |----- |--------| | 1 | Tom | 50K | A | | 2 | Billy | 15K | A | | 3 | Bucky | 15K | B | department table | d_id | d_name | |---- |------- | | A | XXX | | B | YYY | 现在d_id是外键,所以它如何成为主键.并解释一下加入.有什么用? 解决方法我认为这个问题有点令人困惑.如果你的意思是“可以将外键”称为“同一个表中的主键吗?”,答案肯定是肯定的,因为有些人回答说.例如,在员工表中,员工的行可能有一列用于存储经理的员工编号,其中经理也是员工,因此在表中会有一行,就像任何其他员工的一行一样. 如果你的意思是“可以列(或列集)是主键还是同一个表中的外键?”,在我看来,答案是否定的;这看起来毫无意义.但是,以下定义在SQL Server中成功! create table t1(c1 int not null primary key foreign key references t1(c1)) 但我认为,除非有人提出一个实际的例子,否则有这样的约束是没有意义的. AmanS,在您的示例中,d_id在任何情况下都不能成为Employee表中的主键.一个表只能有一个主键.我希望这清除你的怀疑. d_id是/可以是仅在department表中的主键. (编辑:均轻资讯网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- tsql – SQL将行转换为列
- sql – 索引维护
- sql-server – 为什么我需要两个SQL Server Service Broker
- 如何在我的sql数据库中存储一对多的关系? (MySQL的)
- sql-server – 创建缓存(延迟假脱机)CTE结果的计划指南
- sql – select子句中多个set-returns函数的预期行为是什么?
- sqlserver日志传送有何优点?怎样运用?
- sql-server – SQL Server如何确定缺失索引请求中的键列顺序
- sql-server – 何时在重建索引时使用sort_in_tempdb?
- 数据库设计 – 设计平台:一个数据库还是多个数据库?
站长推荐
热点阅读


