石家庄做网站,石家庄网站优化,石家庄网络推广,石家庄网络公司
当前位置:主页 > 新闻资讯 > 建站经验 >

MYSQL中唯一约束和唯一索引的区别

发表日期:2020-07-06 22:49文章编辑:优搜客浏览次数: 标签: mysql|    

MYSQL中唯一约束和唯一索引的区别
1、唯一约束和唯一索引,都可以实现列数据的唯一,列值可以有null。
2、创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引。唯一约束是通过唯一索引来实现数据的唯一。
3、创建一个唯一索引,这个索引就是独立,可以单独删除。
4、如果一个列上想有约束和索引,且两者可以单独的删除。可以先建唯一索引,再建同名的唯一约束。
5、如果表的一个字段,要作为另外一个表的外键,这个字段必须有唯一约束(或是主键),如果只是有唯一索引,就会报错。
  约束是业务检查,比方说非空约束,check约束,那是检查字段非空,是否符合check。而索引是一种数据结构, rowid与字段值的键值对.  两个东西的效果是一样。但:在建立唯一约束时,会自动创建一个唯一索引.并且,失效该约束时,索引自动删除.而创建唯一索引则不会自动创建唯一约束.因此在建表时,如果要创建唯一索引,最好先建唯一索引再创建唯一约束.这样的话,在进行大批量数据插入时,可以先失效约束,插入完成后再进行索引重建.
  除了引文中提到的,要被外键引用必须有唯一约束,还有这个区别:索引的键不一定要和唯一约束完全匹配,唯一约束可以只用索引的前导列。
例子:
create table t (n1 number,n2 number);
create index t_idx on t(n1,n2);
上面只是创建了两个列的复合索引,并不要求是唯一索引。
alter table t add constraint t_uk unique (n1) using index t_idx;
可以使用这个索引来创建唯一约束, 而且它只在第一个列上唯一,也就是说唯一约束比索引更加严格。
那么这个索引的第二个列有什么意义?有些时候,带一些冗余列可以使得你直接从索引中取到所有SELECT的数据而无需回表

如没特殊注明,文章均来自网络!转载请注明来自:https://www.yousouke.com/News/jzjy/11530.html

网站设计案例推荐

热门新闻

「石家庄网站建设」企业建网站如何提高网页打开速度

手机网站建设技巧及推广方法

「不等于符号」sql 不等于符号

服务器返回的http状态码

做好站内优化的重要性有哪些?

phpcms显示验证码出错怎么办?

CSS解决文字与图片不能水平居中对齐的问题

网站运营推广中哪些问题常常会遇到?

相关新闻
推荐新闻

404页面对SEO优化影响有多大?

学校网站建设方案里面主要包含哪些内容呢?

石家庄SEO:PR值是什么意思?

【seo优化公司】快速提升网站权重的几个方法?

石家庄网站关键词优化之网站词库企业关键词的建立

企业网站建设中有哪几个重要点?

网站取消备案和注销备案到底有什么区别?

网页加载缓慢怎么办?

超链接去掉下划线的几个方法