主键约束即在表中定义一个主键来唯一确定表中每一行数据的标识符。主键可以是表中的某一列或者多列的组合,其中由多列组合的主键称为复合主键。
复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键仍然满足唯一性原则,那么这个复合主键是不正确的。这是最小化原则。
如何添加复合主键?
可以在创建表时添加复合主键,此时主键由多个字段联合组成,语法规则如下: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)