mysql表中一个表中可以有多个主键吗?

 我来答
桀诺98
推荐于2019-11-01 · TA获得超过3166个赞
知道小有建树答主
回答量:24
采纳率:100%
帮助的人:3615
展开全部

主键只能有一个。

但是,如果你想用多个‘唯一索引’(unique index),是可以有多个的。

主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

所谓的一张表多个主键,我们称之为联合主键。

可以由多个列形成联合主键,但是主键只能有一个

普实软件
2017-07-04 · 知道合伙人软件行家
普实软件
知道合伙人软件行家
采纳数:1703 获赞数:7398
普实软件ERP专家

向TA提问 私信TA
展开全部

数据库中的每张表只能有一个主键,不可能有多个主键。

主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

所谓的一张表多个主键,我们称之为联合主键。

注:联合主键:就是用多个字段一起作为一张表的主键。

创建联合主键:

1、GUI中同时选中多列,点击设置为主键。


2、sql语句将多列设置为主键:


方法一:在建表时就写出

Create Table 表名 (字段名1 Int Not Null,
                   字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
                    字段名3…………
                    字段名N………… )


方法二:在建表后更改

ALTER TABLE 表名 WITH NOCHECK ADD 
CONSTRAINT [PK_表名] PRIMARY KEY  NONCLUSTERED 
(
  [字段名1],
  [字段名2]
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jamesless
2016-07-04 · TA获得超过197个赞
知道答主
回答量:107
采纳率:0%
帮助的人:40.4万
展开全部
不能,主键只能有一个。
但是,如果你想用多个‘唯一索引’(unique index),是可以有多个的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山水live
2018-01-03 · TA获得超过304个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

外键需要主键或者该列定义的是UNIQUE 方式,所以按照上面的表方式,除非teachers162中Teacher_ID 在整张表中是唯一的,那么可以建立UNIQUE方式。
如果不是上面情况,建议拆表teachers162,建立一张teachers信息表,teachers和课程的关系表两张表。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式