sql中怎么会有两个以上的主键?

我用Navicat for MySQL,可以创建两个以上的主键?主键不是就一个,其他的是复合主键吗?

对,就是联合主键。
你如果不确定,你把这张表右键-转储成sql文件打开看一下就全知道了,最后就是:
PRIMARY KEY (`字段1`,`字段2`)这样的。两个字段共同形成同一个主键。追问

对了,主键有几种?

追答

一般也就单字段主键和联合主键,具体使用哪个看系统需求

追问

嗯,对了,MySQL as为什么加不加都可以

追答

没没为什么,语法规定,加不加都通用,sqlserver,oracle也如此。

追问

好吧,谢谢

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-12
首先要明确一点,在关系数据库中一张表中最多只能有一个主键(也称为主码),这一点是确定无疑的。
你的这个题目中number和course后边都标记了主码,并不代表这张表有两个主码,而是说这两个列联合起来做主码,更明确的说就是这两个列中都不能出现空值NULL,也不能出现组合的重复值(单独的number重复或者单独的course重复都可以,但二者组合在一起不能重复)。
最后还有一点要强调,虽然一张表中不能出现两个主码,但可以出现两个候选码(候选码也是要求非空并且唯一),只需要设置某个列或者列的组合为非空,然后在这些列上创建唯一索引,那么就起到了候选码的作用。
第2个回答  2019-03-11
sql数据库中主键可以根据数据字典需求配置不同的权限,所以,可以有多个主键,但是,不同主键的优先级不同。
第3个回答  2019-03-11
主键可以用联合主键的,经常会有一个字段不够确定唯一性的情况就要用到追问

对了,MySQL as为什么加不加都可以

相似回答