为了账号安全,请及时绑定邮箱和手机立即绑定

我可以在一个表中拥有多个主键吗?

我可以在一个表中拥有多个主键吗?

郎朗坤 2019-07-29 11:07:14
我可以在一个表中拥有多个主键吗?我可以在一个表中拥有多个主键吗?
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

表可以有一个复合主键,它是由两列或更多列组成的主键。例如:

CREATE TABLE userdata (
  userid INT,
  userdataid INT,
  info char(200),
  primary key (userid, userdataid));

更新: 这是一个链接,其中包含复合主键的更详细说明。


查看完整回答
反对 回复 2019-07-29
?
不负相思意

TA贡献1777条经验 获得超10个赞

您只能拥有一个主键,但主键中可以有多个列。

您还可以在表上使用唯一索引,这将有点像主键,因为它们将强制执行唯一值,并将加快查询这些值。


查看完整回答
反对 回复 2019-07-29
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

一个表可以有多个候选键。每个候选键都是一列或一组列,这些列是UNIQUE,一起使用,也是NOT NULL。因此,为任何候选键的所有列指定值足以确定有一行符合条件,或者根本没有行。

候选键是关系数据模型中的基本概念。

如果一个表中存在多个密钥,则通常的做法是将一个候选密钥指定为主密钥。通常的做法是使表的任何外键引用主键,而不是任何其他候选键。

我推荐这些实践,但关系模型中没有任何内容需要在候选键中选择主键。


查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 1182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信