如何使 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)
廣告