请问mssql2k中的创建unique约束与unique索引有啥区别?

hsn1982 2006-05-15 05:09:06
我测试了这两种,两种都可以做到限制唯一值。而且选项"忽略重复键"不起作用的,选与不选效果都一样是可以限制唯一值。

请问大家这是什么原因
...全文
825 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
RainyBoo 2007-01-29
  • 打赏
  • 举报
回复
谢谢大家给予的详细的解答。
  • 打赏
  • 举报
回复
保存起来。
luoqun_ncs 2006-05-15
  • 打赏
  • 举报
回复
唯一索引:里面可以有重复值,create的时候有选项的
唯一约束:为了实现唯一约束,数据库会强制定义一个唯一索引在数据库上面(为了性能),但是加了唯一约束以后就不能有重复值了

至于null值,sql server只允许加了唯一约束的列里面有一个null,oracle可以有多个null值.
hsn1982 2006-05-15
  • 打赏
  • 举报
回复
to zjcxc(邹建):
你的意思是选中“忽略重复值”时,如果在约束字段上插入已存在的值,不会返回错误,但还是插入失败。对吗?
zjcxc 元老 2006-05-15
  • 打赏
  • 举报
回复
忽略重复值这个选项设置上后, 如果你插入的数据的值与现有值重复, 则插入不会失败, 而是自动跳过重复的这条记录的插入.
hsn1982 2006-05-15
  • 打赏
  • 举报
回复
to WangZWang(阿来) :
unique约束与unique索引的区别就是这样的阿。那“忽略重复值”有什么作用呢?
itblog 2006-05-15
  • 打赏
  • 举报
回复
索引有唯一索引和非唯一索引。唯一索引保证表中没有两行在定义索引的列上具有重复值。在唯一码上自动地定义唯一索引实施UNIQUE完整性约束
zjcxc 元老 2006-05-15
  • 打赏
  • 举报
回复
功能上没有区别.

因为unique约束也是通过unique索引实现的.


唯一的区别在于建立和删除上.

索引是使用 create/drop index 创建和删除的
而约束是使用 alter table tb add constraint 建立, 使用 drop constraint 删除
liangpei2008 2006-05-15
  • 打赏
  • 举报
回复
关注楼主问题
WangZWang 2006-05-15
  • 打赏
  • 举报
回复
unique约束与unique索引后者包含了前者,且有索引的作用.
如果某列有多行包含 NULL 值,则不能在该列上创建unique索引

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧