如何將 UNIQUE 約束應用到現有 MySQL 表中的欄位?


我們可以用 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-6-2020

438 人閱讀

開啟你的 職業生涯

完成課程即可獲得認證

開始學習
廣告
© . All rights reserved.