如何对现有 MySQL 表的字段应用 UNIQUE 约束?


借助于 ALTER TABLE 语句,我们可以将 UNIQUE 约束应用于现有 MySQL 表的列。

语法

ALTER TABLE table_name MODIFY colum_name datatype UNIQUE;
                    OR
ALTER TABLE table_name ADD UNIQUE (colum_name);

示例

假设我们有名为 ‘Test4’ 的表,且我们想对 ‘Name’ 列添加 UNIQUE 约束,那么可借助 ALTER TABLE 命令实现,如下所示 −

mysql> DESCRIBE test4;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID    | int(11)     | YES  | UNI | NULL    |       |
| Name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

mysql> ALTER TABLE test4 MODIFY Name Varchar(20) UNIQUE;
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESCRIBE test4;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID    | int(11)     | YES  | UNI | NULL    |       |
| Name  | varchar(20) | YES  | UNI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

从以上结果集合中,我们可以看到 MySQL 已经向 ‘Name’ 字段添加了 UNIQUE 约束。我们可以使用以下查询同样添加一个 UNIQUE 约束 −

mysql> Alter table test4 add UNIQUE(name);
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0

更新于: 19-Jun-2020

438 次浏览

打造您的职业生涯

完成课程即可获得认证

立即开始
广告