世界超算排行榜:太湖之光!

IT教程学习网

网站建设

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

文章来源:未知   作者:inalls   浏览量:

   在建立唯一约束时,会自动创建一个唯一索引.并且,失效该约束时,索引自动删除.而创建唯一索引则不会自动创建唯一约束.因此在建表时,如果要创建唯一索引,最好先建唯一索引再创建唯一约束.这样的话,在进行大批量数据插入时,可以先失效约束,插入完成后再进行索引重建。索引的键不一定要和唯一约束完全匹配,唯一约束可以只用索引的前导列。
 

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

1、唯一约束和唯一索引,都可以实现列数据的唯一,列值可以有null。
2、创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引。
      唯一约束是通过唯一索引来实现数据的唯一。
3、创建一个唯一索引,这个索引就是独立,可以单独删除。
4、如果一个列上想有约束和索引,且两者可以单独的删除。可以先建唯一索引,再建同名的唯一约束。
5、如果表的一个字段,要作为另外一个表的外键,这个字段必须有唯一约束(或是主键),如果只是有唯一索引,就会报错。
 

MYSQL唯一约束举例:

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的数据而无需回表。
 
 

分享到:

  • 上一篇:mysql数据库整形数据取值范围
  • 下一篇:没有了
  • Copyright © 2014-2026 深腾网 版权所有:静岳互联网咨询工作室
  • 冀ICP备16020878-1