mysql查看约束的名称_MySQL约束

unique约束

unique约束和unique索引(注意是unique索引,不是普通索引)有着微妙的关系,二者在MySQL里面是同时存在的,但是二者不能等价。unique约束可以在information_schema里面的table_constraints表中查到,索引信息可以在information_schema里面的statistics表里面查询。

(1)创建表的时候可以使用如下几种方法创建unique约束:

create table t1(id int primary key,name varchar(20) unique);=======>无法指定约束名称,系统默认约束名称和字段名相同。

create table t1(id int primary key,name varchar(20),constraint t1_unq unique(name));========>指定了约束名(或者索引名)。如果省略constraint子句或者只省略约束名称,那么约束名称和字段名相同。

create table t1(id int primary key,name varchar(20), unique index t1_name_unq(name));========>常用,相当于创建了索引。

create table t1(id int primary key,name varchar(20), unique key t1_name_unq(name));========>同上,相当于创建了索引,只是用的关键字是key,index和key在MySQL里面是同义词

(2)表已经存在时可以通过两种方式添加unique约束。

alter table t1 modify name varchar(20) unique;======>无法指定约束名称,系统默认约束名称和字段名相同。

alter table t1 add constraint t1_name_unq unique(name);======>constraint关键字指定约束名称,即索引名称。如果省略约束名或者constraint关键字和约束名,那么约束名和字段名相同。

alter table t1 add unique index t1_name_unq(name);=======>常用,约束名和索引名都为t1_name_unq

alter table t1 add unique key t1_name_unq(name);=======>同上,相当于创建了索引,只是用的关键字是key

因为unique约束和unique索引同时存在,所以我们都会用第三种方式去添加unique索(t1_name_unq为索引名称),如果不带unique关键字则说明添加的是普通索引。unique约束(unique索引)的信息会同时在information_schema里面的statistics表和table_constraints表里面保持一致。

(3)删除unique约束(索引)只能使用如下语句:

alter table t1 drop index t1_unq;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值