您的位置:首页 > 其它

主键、唯一键、唯一索引的使用

2015-02-10 20:45 274 查看
主键只能用一个,不能为NULL,唯一(可以多列作为复合主键,当所有设置为复合主键的列都相同是视为唯一,多对多的表中常用)

唯一键,也称(唯一约束),和主键的区别是可以为有多个唯一键并且值可以为NULL,但NULL也不能重复,也就是说只能有一行的值为NULL。它会隐式的创建唯一索引。

alter table 表名
add constraint 约束名 unique(列名)


唯一索引,几乎和唯一键一样,但可以添加过滤器来允许重复某些值

CREATE UNIQUE INDEX 索引名 ON 表名 (列名)
--如果要允许NULL重复
WHERE 列名 IS NOT NULL
--如果还要允许值为xx重复
and 列名!='xx'


对于唯一约束和唯一索引的选择,请参照MSDN上的指导,如下:

唯一约束和唯一索引并没有显著的区别。创建独立的唯一索引和使用唯一约束对于数据的验证方式并无区别。查询优化器也不会区分唯一索引是由约束创建还是手工创建。然而以数据完整性为目标的话,最好创建约束,这使得对应的索引的目标一目了然。

个人认为:如果需要允许重复某些值(如NULL)才用唯一索引
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: