如何對現有 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 次瀏覽

打造您的職業生涯

完成課程即可獲得認證

立即開始
廣告
© . All rights reserved.