在mysql中怎样设置值唯一_mysql怎么设置行值唯一?
mysql可通過給行(字段)添加唯一性約束來設(shè)置行值唯一,語法格式“CREATE TABLE 表名 (字段名 數(shù)據(jù)類型 UNIQUE);”和“ALTER TABLE 表名 ADD CONSTRAINT 唯一約束名 UNIQUE(列名);”。
MySQL數(shù)據(jù)庫唯一性設(shè)置unique index
在數(shù)據(jù)庫設(shè)計中設(shè)置主鍵的字段是不會重復(fù)的、唯一的,如果有其他字段也需要保持唯一性應(yīng)該如何設(shè)置呢?比如一個保存用戶信息的表里要保證每條記錄的手機號都不同。這時候就需要對該字段設(shè)置唯一性。
設(shè)置唯一性后的字段,在數(shù)據(jù)庫層面保證了該字段不會出現(xiàn)相同的值。下面說一下唯一性的設(shè)置方法:
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工具添加索引
使用navicat操作mysql數(shù)據(jù)庫更加方便,推薦大家多多使用這種方式
設(shè)計表時:如圖選擇索引,第一項‘名’,隨便自己起一個有意義的名字就行了。第二項是你要設(shè)置唯一性的字段,然后索引類型選擇unique。選中要修改的表名稱,右擊選中設(shè)計表
常遇到的問題
如果唯一性是后期加的(設(shè)計完表之后,并且表里已經(jīng)有了一些數(shù)據(jù))
可能存在表中部分?jǐn)?shù)據(jù)不滿足唯一性的情況,例:想對字段phone設(shè)置唯一性,但目前表中有兩條數(shù)據(jù)phone都是同一個手機號,這是設(shè)置唯一性就會出錯。
如上圖所示(這種情況在命令行操作下也會出現(xiàn),只不過是以文字的形式)
這時就應(yīng)該刪除重復(fù)的數(shù)據(jù)后再設(shè)置唯一性。
兩個或多個字段的組合成唯一索引
例子:一個用戶,存了姓名和手機號,
這里只允許每個手機號只對應(yīng)一個名稱,即name和phone的組合不能出現(xiàn)重復(fù)的情況,也就是說不能有兩條記錄他們的name和phone都相同。
如何在mysql中進(jìn)行設(shè)置呢,這里只給出navicat中的方法:如圖只需要選中兩個欄位就可以啦!
總結(jié)
以上是生活随笔為你收集整理的在mysql中怎样设置值唯一_mysql怎么设置行值唯一?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 6.5安装_(整理)MySQ
- 下一篇: mysql 数据目录迁移_MySQL数据