美文网首页
2018-07-09 复合主键

2018-07-09 复合主键

作者: lucasdada | 来源:发表于2018-07-09 10:41 被阅读0次

Mysql 多列形成主键(复合主键 )

什么是数据表的复合主键
所谓的复合主键 就是指你表的主键含有一个以上的字段组成
比如
create table test
(
name varchar(19),
id number,
value varchar(10),
primary key (name,id)
)

上面的name和id字段组合起来就是你test表的复合主键
它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性
一般情况下,主键的字段长度和字段数目要越少越好

KEY

  1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列
  2. 如果Key是PRI, 那么该列是主键的组成部分
  3. 如果Key是UNI, 那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL)
  4. 如果Key是MUL, 那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL

如果对于一个列的定义,同时满足上述4种情况的多种,比如一个列既是PRI,又是UNI
那么"desc 表名"的时候,显示的Key值按照优先级来显示 PRI->UNI->MUL
那么此时,显示PRI

一个唯一性索引列可以显示为PRI,并且该列不能含有空值,同时该表没有主键

一个唯一性索引列可以显示为MUL, 如果多列构成了一个唯一性复合索引
因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值
只要ID+NAME是唯一的即可

相关文章

  • 2018-07-09 复合主键

    Mysql 多列形成主键(复合主键 ) 什么是数据表的复合主键所谓的复合主键 就是指你表的主键含有一个以上的字段组...

  • Hibernate 菜鸟教程 8 复合主键

    复合主键 复合主键的意思就是2个字段同时为主键不使用无业务含义的自增id作为主键 模型对象Airline 映射文件...

  • 完整性约束

    主键约束 primary key 复合主键 自增长 AUTO_INCREMENT (需要配合主键来使用 否则报错)...

  • 2020-03-11 记录mongdb(3)

    基本操作: 文档主键 _id 文档主键的唯一性 支持所有数组类型(数组除外) 复合主键 对象主键 Ob...

  • JPA复合主键

    在JPA中,我们可以使用复合主键,也就是说在一个类中可以拥有两个有@ID属性的字段。当然,我们也可以ID类, 使用方式:

  • typeorm 复合主键

    https://github.com/typeorm/typeorm/issues/3657

  • OneToMany 一端复合主键做多端的外键

    一端有个复合主键,作为多端的外键,数据表如下: 代码: 复合主键的定义: 一端的定义: 多端的定义:

  • mysql的联合主键与复合主键区别

    复合主键就是指你表的主键含有一个以上的字段组成 。 例如; create table test ( name va...

  • Oracle修改主键

    1、Oracle在已经存在主键的表中插入复合主键的SQL语句 如已有一个表test_key,其中a1列为主键。 现...

  • Oracle11g学习笔记(一)——关系型数据库的基本理论

    能唯一标识表中不同行的属性或属性组(多个属性的组合)称为主键或复合主键 唯一键:键是由一个列组成 复合键:键是由多...

网友评论

      本文标题:2018-07-09 复合主键

      本文链接:https://www.haomeiwen.com/subject/xiezuftx.html