MySQL 主键


本教程将通过语法和示例说明如何在MySQL中创建和删除主键。

MySQL中的主键是什么?

在MySQL中,主键是唯一定义一条记录的单个字段或多个字段的组合。主键的任何字段都不能包含NULL值。一个表只能有一个主键。

说明

  • 在MySQL中,使用CREATE TABLE语句或ALTER TABLE语句创建主键。
  • 您可以在MySQL中使用ALTER TABLE语句删除,禁用或启用主键。

创建主键-使用CREATE TABLE语句

您可以使用CREATE TABLE语句在MySQL中创建主键。

语法

在MySQL中使用CREATE TABLE语句创建主键的语法为:

1
2
3
4
5
6
7
8
9
CREATE TABLE table_name
(
column1 column_definition,
column2 column_definition,
...
CONSTRAINT [constraint_name]
PRIMARY KEY [ USING BTREE | HASH ] (column1, column2, ... column_n)
);
参数 说明
table_name 要创建的表的名称。
column1, column2 要在表中创建的字段。
constraint_name 主键的名称。
column1,column2,... column_n 组成主键的列。

示例

让我们看一个如何在MySQL中使用CREATE TABLE语句创建主键的示例。

1
2
3
4
5
6
7
CREATE TABLE contacts
( contact_id INT(11) NOT NULL AUTO_INCREMENT,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25),
birthday DATE,
CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);

在此示例中,我们在联系人表上创建了一个名为contacts_pk的主键。它仅包含一列-contact_id列。


创建一个具有多个字段的主键:

1
2
3
4
5
6
CREATE TABLE contacts
( last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25) NOT NULL,
birthday DATE,
CONSTRAINT contacts_pk PRIMARY KEY (last_name, first_name)
);

本例创建了一个名为contacts_pk的主键,它由last_name和first_name列组成。因此,last_name和first_name的每个组合在contacts表中必须是唯一的。

创建主键-使用ALTER TABLE语句

语法

在MySQL中使用ALTER TABLE语句创建主键的语法为:

1
2
3
ALTER TABLE table_name
ADD CONSTRAINT [ constraint_name ]
PRIMARY KEY [ USING BTREE | HASH ] (column1, column2, ... column_n)
参数 说明
table_name 修改的表的名称。
constraint_name 主键的名称。
column1,column2,... column_n 组成主键的列。

示例

示例-使用ALTER TABLE语句创建主键。

1
2
3
ALTER TABLE contacts
ADD CONSTRAINT contacts_pk
PRIMARY KEY (contact_id);

在此示例中,我们在现有的contacts表上创建了一个名为contacts_pk的主键。它由contact_id列组成。


示例-创建一个具有多个字段的主键:

1
2
3
ALTER TABLE contacts
ADD CONSTRAINT contacts_pk
PRIMARY KEY (last_name, first_name);

在此示例中,我们创建了一个名为contacts_pk的主键,该主键由last_name和first_name列的组合组成。

删除主键

可以使用ALTER TABLE语句在MySQL中删除主键。

语法

在MySQL中删除主键的语法为:

1
2
ALTER TABLE table_name
DROP PRIMARY KEY;
参数 说明
table_name 要修改的表的名称。

示例

在MySQL中使用ALTER TABLE语句删除主键的示例:

1
2
ALTER TABLE contacts
DROP PRIMARY KEY;


原文链接:https://codingdict.com/