mysql 联合主键和复合主键的区别

mysql 联合主键和复合主键的区别,第1张

什么是复合主键?

所谓的复合主键就是指你表的主键含有一个以上的字段组成

比如

create table test

(

name varchar(19),

id number,

value varchar(10),

primary key (name,id)

)

上面的name和id字段组合起来就是你test表的复合主键

它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性

一般情况下,主键的字段长度和字段数目要越少越好

什么是联合主键?

(主键原则上是唯一的,别被唯一值所困扰。)

顾名思义就是多个主键联合形成一个主键组合

一个简单的例子

主键A跟主键B组成联合主键

主键A跟主键B的数据可以完全相同(困扰吧,没关系),联合就在于主键A跟主键B形成的联合主键是唯一的。

下例主键A数据是1,主键B数据也是1,联合主键其实是11,这个11是唯一值,绝对不充许再出现11这个唯一值。(这就是多对多关系)

主键A数据

主键B数据

11

22

33

主键A与主键B的联合主键值最多也就是

11

12

13

21

22

23

31

32

33

猜测你说的是 主键 primary key 不能为空 。数据库都是这样。区分两条记录必须要通过key。可以是唯一的key 就是主键 或者是组合的 key(姓+名) 联合主键 。当你设置记录为null后 那么key为null的两条记录 你如何区分 到底要 *** 作的是谁? 所以,不能设置为null 最好也不要重复


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6222370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存