mysql可透過為行(欄位)新增唯一性限制來設定行值唯一,語法格式「CREATE TABLE 表名(欄位名稱資料類型UNIQUE);」和「ALTER TABLE 表格名稱ADD CONSTRAINT 唯一約束名UNIQUE(列名);」。
(推薦教學:mysql影片教學)
在資料庫設計中設定主鍵的欄位是不會重複的、唯一的,如果有其他欄位也需要保持唯一性應該如何設定呢?例如一個保存用戶資料的表裡要保證每筆記錄的手機號碼都不同。這時候就需要對該字段設定唯一性。
設定唯一性後的字段,在資料庫層面保證了該字段不會出現相同的值。下面說一下唯一性的設定方法:
1、建表時加上
CREATE TABLE `member` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(18) NOT NULL , `phone` varchar(18) NOT NULL unique, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2、建表後改
alter table member add unique(phone);
使用navicat操作mysql資料庫更加方便,推薦大家多多使用這種方式
設計表時:如圖選擇索引,第一項'名',隨便自己起一個有意義的名字就行了。第二項是你要設定唯一性的字段,然後索引類型選擇unique。
選取要修改的表格名稱,右鍵選取設計表
## 如果唯一性是後期加的(設計完表之後,且表裡已經有了一些資料)
可能存在表中部分資料不滿足唯一性的情況,例如:想對欄位phone設定唯一性,但目前表中有兩條資料phone都是同一個手機號,這是設定唯一性就會出錯。 ### 如上圖所示(這種情況在命令列操作下也會出現,只不過是以文字的形式)### 這時就應該刪除重複的資料後再設定唯一性。 ######兩個或多個欄位的組合成唯一索引######範例:一個用戶,存了姓名和手機號,### 這裡只允許每個手機號只對應一個名稱,即name和phone的組合不能出現重複的情況,也就是說不能有兩筆記錄他們的name和phone都相同。 ### 如何在mysql中進行設定呢,這裡只給navicat中的方法:如圖只需要選取兩個欄位就可以啦! ############以上是mysql怎麼設定行值唯一?的詳細內容。更多資訊請關注PHP中文網其他相關文章!