1,命令行操作
分為兩種。一種是在建表時就想好要加上唯一性,另一種是在后期才發現需要設置唯一性。
建表時:
CREATE TABLE `t_user` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(18) NOT NULL unique,
`password` varchar(18) NOT NULL,
PRIMARY KEY (`Id`) www.2cto.com
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;
后期加上:
ALTER TABLE ·t_user· ADD unique(`username`)
``
### 2,navicat方式
使用navicat操作mysql數據庫更加方便,推薦大家多多使用這種方式
設計表時:如圖選擇索引,第一項‘名’,隨便自己起一個有意義的名字就行了。第二項是你要設置唯一性的字段,然后索引類型選擇unique。

表已經建好的情況:選中表,右鍵-設計表-和上述一樣操作就行啦。
3,可能遇到的錯誤
如果唯一性是后期加的(設計完表之后,並且表里已經有了一些數據)
可能存在表中部分數據不滿足唯一性的情況,例:想對字段sid設置唯一性,但目前表中有兩條數據sid都是472,這是設置唯一性就會出錯。
如下圖所示(這種情況在命令行操作下也會出現,只不過是以文字的形式)

這時就應該刪除重復的數據后再設置唯一性。
4,進階操作——組合索引的唯一性
前面只講了給一個字段設置唯一性的方法,如果有兩個或多個字段的組合需要唯一呢?
例子:有一個保存大四畢業生每周上傳的畢設報告的表。它有學生id:sid,周數:week,報告內容:content等字段。
這里只允許每個學生每周上傳一份周報告,即sid和week的組合不能出現重復的情況,也就是說不能有兩條記錄他們的sid和week都相同。
如何在mysql中進行設置呢,這里只給出navicat中的方法:如圖只需要選中兩個欄位就可以啦!
