在mysql中可以在创建表时添加复合主键,其语法规则是“PRIMARY KEY [字段1,字段2,…,字段n]”,表示主键由多个字段联合组成。

主键约束即在表中定义一个主键来唯一确定表中每一行数据的标识符。主键可以是表中的某一列或者多列的组合,其中由多列组合的主键称为复合主键。

复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键仍然满足唯一性原则,那么这个复合主键是不正确的。这是最小化原则。

如何添加复合主键?

可以在创建表时添加复合主键,此时主键由多个字段联合组成,语法规则如下:PRIMARY KEY [字段1,字段2,…,字段n]

示例:创建数据表 tb_emp,假设表中没有主键 id,为了唯一确定一个员工,可以把 name、deptId 联合起来作为主键mysql> CREATE TABLE tb_emp

-> (

-> name VARCHAR(25),

-> deptId INT(11),

-> salary FLOAT,

-> PRIMARY KEY(id,deptId)

-> );

Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_emp;

+--------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| name | varchar(25) | NO | PRI | NULL | |

| deptId | int(11) | NO | PRI | NULL | |

| salary | float | YES | | NULL | |

+--------+-------------+------+-----+---------+-------+

3 rows in set (0.14 sec)

mysql复合主键_mysql怎么添加复合主键?相关推荐

  1. 添加mysql组合主键_mysql怎么添加复合主键?

    在mysql中可以在创建表时添加复合主键,其语法规则是"PRIMARY KEY [字段1,字段2,-,字段n]",表示主键由多个字段联合组成. 主键约束即在表中定义一个主键来唯一确 ...

  2. mysql设置主键_mysql如何添加主键?

    "主键(PRIMARY KEY)"的完整称呼是"主键约束".MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键 ...

  3. mysql取出数据外键_mysql数据表有外键,应注意的几点(目前学习所获得的经验)...

    mysql : 1.有做外键的表子表和父表的引擎要一致才能添加数据:否则报外键约束错误 2.数据 类型要一致,不然添加补了 外键: 3.InnoDB和 myisam的区别(来源:PHP100中文网) ...

  4. mysql 引擎 外键_mysql的事物,外键,与常用引擎

    ### part1 时间类型 date YYYY-MM-DD 年月日 (出现日期) time HH:MM:SS 时分秒 (竞赛时间) year YYYY 年份值 (红酒年份 82年矿泉水) datet ...

  5. mysql5.7自增长主键_mysql 5.7 使用主键约束

    前言 今天学习一下mysql 主键又称主码,是表中一列或多列的组合.主键约束要求主键的数据唯一,并且不允许为空.主键能够唯一的标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数 ...

  6. mysql复合主键长度_Mysql 多列形成主键(复合主键 )

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

  7. mysql 创建表主键_MySQL创建表和主键约束

    1.创建表 在操作数据表之前,应该使用"USE 数据库名"指定操作是在哪个数据库中进行 主键约束(唯一标识) ****非空*** ****唯一*** ****被引用****(学习外 ...

  8. mysql 唯一键和主键_MySQL唯一键和主键

    用下面的命令创建一个表: CREATE TABLE people ( age INT NOT NULL, name CHAR(20) NOT NULL ); 我们可以多次插入一个项. 特别地,我们可以 ...

  9. mysql数据库快捷添加外键_mysql 数据库添加外键的几种方式

    创建主表: 班级 CREATE TABLE class(cid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(15) NOT NULL) INSERT I ...

最新文章

  1. C#生成CHM文件(外篇使用hha.dll)
  2. 浅谈format格式化输出
  3. 关于Java栈与堆的思考
  4. 21.3 共享受限的资源
  5. go连接mysql集群_什么是MySQL集群-Go语言中文社区
  6. boost 文件操作
  7. 机器学习的一些注意事项
  8. 图论测试题(一)第一题:longest
  9. vuex commit 传参数,传递多个参数
  10. 小程序短视频项目———上传短视频业务流程简介
  11. MVC系列学习(十五)-验证码
  12. 剑指offer——31.栈的压入、弹出序列(想法不错,比剑指的简单)
  13. JavaScript HTML DOM 1
  14. 你最大的敌人是自己:一个独立游戏人的创业自白
  15. 【python】59个Python使用技巧,从此你的Python与众不同(二)
  16. 【优化算法】吉萨金字塔建造优化算法(GPC)【含Matlab源码 1438期】
  17. 刻字机软件工具:::Easy Cut Studio
  18. 3DMine V202006体验版本下载
  19. YOLOv5损失函数定义
  20. 2019CCPC秦皇岛打铁(游)记

热门文章

  1. SequoiaDB巨杉数据库S3实例的连接
  2. iOS Core Data 数据迁移 指南 144 作者 一缕殇流化隐半边冰霜 关注 2016.05.09 00:35* 字数 4718 阅读 2931评论 17喜欢 327 前言 Core
  3. 创建学生选课成绩的数据库的语句
  4. 有谁用过西部数据的 WD Backup吗?感觉好慢啊,而且有些文件还无法备份
  5. 数据库系统复习篇——全
  6. python request使用
  7. 无限级分类添加,修改,删除
  8. C++Primer课后题11.0、11.31
  9. 品读国学经典之二——《邹忌讽齐王纳谏》》
  10. ios %.2f是四舍五入吗?