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

关于主键和表级约束

既然一张表只能有一个主键 为什么还会出现主键是表级约束的情况 (一张表里不是只能将一个字段设为主键么即一张表只能有一个主键)?

正在回答

2 回答

一张表可以有多个主键,通常开发不适用表级约束。会降低索引和查询效率。

0 回复 有任何疑惑可以回复我~
#1

半成品LY

一个表不是只可以有一个主键吗?怎么会是多个?
2015-12-15 回复 有任何疑惑可以回复我~

一张表是只能有一个主键的,但是主键可以由多个字段组成。这也是它为什么是表级约束的原因。而为什么一张表只能有一个主键呢?理由很简单,因为这个主键可以决定一条记录。即我们知道了主键的值,那么我们就可以通过查找确定某一条记录。可以想象主键是记录的唯一标识,区分不同记录。

3 回复 有任何疑惑可以回复我~
#1

哈喽姑娘

主键可以由多个字段组成是什么意思?
2016-08-17 回复 有任何疑惑可以回复我~
#2

昨天de梦 回复 哈喽姑娘

现在我们有一张 学生成绩表,其中字段 有 学生ID,课程ID,成绩。那么唯一决定某一条记录应该由学生ID和课程ID决定。单靠学生ID或课程ID,是无法确定某条记录的。这是我们可以将学生ID和课程ID 作为联合主键。建表时,添加主键约束,如:primary key(sid, cid)。不过对于这种联合主键的情况,有些人更喜欢用一个自增长的ID作为主键来代替联合主键,因为这个自增长的ID唯一,当然可以决定某条记录咯。确定以自增长ID为主键后,(sid, cid)可以看成是候选键。
2016-08-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

关于主键和表级约束

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信