加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – 外键是否可以引用统一个表中的主键?

发布时间:2021-01-22 09:26:49 所属栏目:编程 来源:网络整理
导读:我只是以为谜底是错误的,由于外键没有独一性属性. 可是有些人说可以本身插手桌子. 我是SQL的新手.假如是真的请表明怎样故及为什么? Employee table| e_id | e_name | e_sala | d_id ||---- |------- |----- |--------|| 1 | Tom | 50K | A || 2 | Billy | 15

我只是以为谜底是错误的,由于外键没有独一性属性.

可是有些人说可以本身插手桌子.
我是SQL的新手.假如是真的请表明怎样故及为什么?

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表中的主键.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读