您好,登錄后才能下訂單哦!
小編給大家分享一下mysql設置行值唯一的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
mysql可通過給行(字段)添加唯一性約束來設置行值唯一,語法格式“CREATE TABLE 表名 (字段名 數據類型 UNIQUE);”和“ALTER TABLE 表名 ADD CONSTRAINT 唯一約束名 UNIQUE(列名);”。
在數據庫設計中設置主鍵的字段是不會重復的、唯一的,如果有其他字段也需要保持唯一性應該如何設置呢?比如一個保存用戶信息的表里要保證每條記錄的手機號都不同。這時候就需要對該字段設置唯一性。
設置唯一性后的字段,在數據庫層面保證了該字段不會出現相同的值。下面說一下唯一性的設置方法:
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設置行值唯一的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。