- 数据库系统原理与应用教程(029)—— MySQL 的数据完整性(二):定义主键(primary key)
- 一、定义主键的原则
- 二、创建表时同时定义主键
- 1、定义单列主键
- 2、定义多列主键
- 三、为一个表添加主键
- 1、添加一个列并设置为主键
- 2、把表中的已有列设置为主键
- 四、删除主键
主键(primary key)是指表中的一个或多个列的组合,其值能够唯一区分表中的每个行。主键用来表示一个特定的行。如果一个表没有定义主键,当对表进行更新操作时将非常不方便,因为在没有主键的情况下,可能无法准确定位要修改的行。
主键必须满足以下要求:
(1)表中的任两行不能有相同的主键值。
(2)每行都必须具有一个主键值,即:主键列不允许为 NULL。
对主键的要求,最关键的一点是:记录一旦插入到表中,主键最好不要再修改,因为主键是用来唯一定位记录的。
选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。身份证号、手机号、邮箱地址等这些看上去可以唯一的字段,均不可用作主键。主键最好是完全与业务无关的字段,一般把这个字段命名为 id。
对于大部分应用来说,通常使用自增类型的字段作为主键,数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键。
1、定义单列主键
如果一个主键只包含一个列,可以使用如下方法定义主键:
例如:
(1)采用第一种形式
(2)采用第二种形式
2、定义多列主键
主键有多个列组成,语法格式如下:
例如:
1、添加一个列并设置为主键
添加一个新列,同时把该列指定为主键,语法格式为:
例如:
(1)添加列之前表中没有数据
(2)添加新列之前表中已有数据,此时添加主键失败
2、把表中的已有列设置为主键
可以把表中已经存在的列定义为主键,语法格式如下:
例如:
(1)空表或者要设置为主键的列无重复值
(2)主键的列如果有重复值则设置失败
删除主键约束的语法格式如下:
例如:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/180580.html