MySQL 主键
时间:2019-02-04 12:52:27 来源:igfitidea点击:
本教程将通过语法和示例说明如何在MySQL中创建和删除主键。
MySQL中的主键是什么?
在MySQL中,主键是唯一定义一条记录的单个字段或多个字段的组合。主键的任何字段都不能包含NULL值。一个表只能有一个主键。
说明
- 在MySQL中,使用CREATE TABLE语句或ALTER TABLE语句创建主键。
- 您可以在MySQL中使用ALTER TABLE语句删除,禁用或启用主键。
创建主键-使用CREATE TABLE语句
您可以使用CREATE TABLE语句在MySQL中创建主键。
语法
在MySQL中使用CREATE TABLE语句创建主键的语法为:
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语句创建主键的示例。
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列。
创建一个具有多个字段的主键:
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语句创建主键的语法为:
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语句创建主键。
ALTER TABLE contacts ADD CONSTRAINT contacts_pk PRIMARY KEY (contact_id);
在此示例中,我们在现有的contacts表上创建了一个名为contacts_pk的主键。它由contact_id列组成。
示例-创建一个具有多个字段的主键:
ALTER TABLE contacts ADD CONSTRAINT contacts_pk PRIMARY KEY (last_name, first_name);
在此示例中,我们创建了一个名为contacts_pk的主键,该主键由last_name和first_name列的组合组成。
删除主键
可以使用ALTER TABLE语句在MySQL中删除主键。
语法
在MySQL中删除主键的语法为:
ALTER TABLE table_name DROP PRIMARY KEY;
参数 | 说明 |
---|---|
table_name | 要修改的表的名称。 |
示例
在MySQL中使用ALTER TABLE语句删除主键的示例:
ALTER TABLE contacts DROP PRIMARY KEY;