MySQL中primary key与unique key的区别以及使用场景
warning:
这篇文章距离上次修改已过432天,其中的内容可能已经有所变动。
在MySQL中,PRIMARY KEY和UNIQUE KEY都是索引,不过它们有一些重要的区别:
唯一性:
PRIMARY KEY约束确保列(或列组合)是唯一的,并且不是 NULL。UNIQUE KEY约束确保列(或列组合)是唯一的,但是可以有多个 NULL 值。
空值:
PRIMARY KEY列不能有 NULL 值。UNIQUE KEY列可以有一个或多个 NULL 值。
索引名称:
PRIMARY KEY索引的名称总是为PRIMARY。UNIQUE KEY的索引名称是在创建时指定的(如果没有指定,MySQL将自动生成一个名称)。
- 一张表只能有一个
PRIMARY KEY,但可以有多个UNIQUE KEY。
使用场景:
- 如果你想要确保记录的唯一性,并且不想有任何空值,使用
PRIMARY KEY。 - 如果你只需要确保列的值是唯一的,并且允许有空值,使用
UNIQUE KEY。
示例代码:
创建表时指定 PRIMARY KEY:
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(100),
PRIMARY KEY (id)
);创建表时指定 UNIQUE KEY:
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
PRIMARY KEY (id)
);在现有表中添加 UNIQUE KEY:
ALTER TABLE my_table ADD UNIQUE (email);
评论已关闭