作者:xiaojin | 来源:互联网 | 2020-08-21 06:02
mysql添加主键分两种情况:1、在创建表时,和CREATETABLE语句一起,在需要添加主键的字段后添加PRIMARYKEY;2、在创建表后,和ALTERTABLE语句一起,使用ADDPRIMARYKEY(<列名>)来添加。
“主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。那么在MySQL中如何添加主键约束?下面本篇文章就给大家介绍一下。
在 CREATE TABLE 语句中,主键是通过 PRIMARY KEY 关键字来指定的。
在定义列的同时指定主键,语法规则如下:
<字段名> <数据类型> PRIMARY KEY [默认值]
例:在 test_db 数据库中创建 tb_emp 1 数据表,其主键为 id
mysql> CREATE TABLE tb_emp1
-> (
-> id INT(11) PRIMARY KEY,
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(25) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
在定义完所有列之后,指定主键的语法格式为:
[CONSTRAINT <约束名>] PRIMARY KEY [字段名]
示例:在 test_db 数据库中创建 tb_emp 2 数据表,其主键为 id
mysql> CREATE TABLE tb_emp2
-> (
-> id INT(11),
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT,
-> PRIMARY KEY(id)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(25) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)
2、在创建表后添加主键约束
创建表后,可以在修改数据表时添加主键约束,语法规则为:
ALTER TABLE <数据表名> ADD PRIMARY KEY(<列名>);
示例:修改数据表 tb_emp3,将字段 id 设置为主键
mysql> ALTER TABLE tb_emp3
-> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> DESC tb_emp3;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | YES | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)
3、设置复合主键
也可以在创建表时添加复合主键,此时主键由多个字段联合组成,语法规则如下:
PRIMARY KEY [字段1,字段2,…,字段n]
示例:创建数据表 tb_emp4,假设表中没有主键 id,为了唯一确定一个员工,可以把 name、deptId 联合起来作为主键
mysql> CREATE TABLE tb_emp4
-> (
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT,
-> PRIMARY KEY(id,deptId)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp4;
+--------+-------------+------+-----+---------+-------+
| 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如何添加主键?的详细内容,更多请关注 第一PHP社区 其它相关文章!