如何使 MySQL 中現有的欄位唯一?


要使 MySQL 中的現有欄位唯一,我們可以使用 ALTER 命令併為該欄位設定 UNIQUE 約束。我們來看一個例子。首先,我們將建立一個表。

mysql> create table AddingUnique
   -> (
   -> Id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.44 sec)

在現有欄位中新增 UNIQUE 的語法。

alter table yourTableName add UNIQUE(yourColumnName);

應用以上語法以向列“name”新增 UNIQUE。

mysql> alter table AddingUnique add UNIQUE(name);
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0

由於我們已將該欄位設定為唯一欄位,因此現在我們無法向表中插入重複記錄。如果我們嘗試新增重複記錄,則會出現錯誤。

mysql> alter table AddingUnique add UNIQUE(name);
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> insert into AddingUnique values(1,'John');
Query OK, 1 row affected (0.15 sec)

mysql> insert into AddingUnique values(1,'John');
ERROR 1062 (23000): Duplicate entry 'John' for key 'name'

mysql> insert into AddingUnique values(2,'Carol');
Query OK, 1 row affected (0.18 sec)

mysql> insert into AddingUnique values(3,'John');
ERROR 1062 (23000): Duplicate entry 'John' for key 'name'

mysql> insert into AddingUnique values(4,'Smith');
Query OK, 1 row affected (0.18 sec)

顯示所有記錄。

mysql> select *from AddingUnique;

以下是輸出結果。

+------+-------+
| Id   | name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    4 | Smith |
+------+-------+
3 rows in set (0.00 sec)

更新於: 2019 年 7 月 30 日

7K+ 瀏覽

開啟你的職業生涯

完成課程以獲得認證

開始
廣告