添加唯一索引 mysql_sql server与mysql 中创建唯一索引

/*筛选索引 SQL SERVER 2008 测试*/

/*

应用:用户表,通过ID可以登录,

如果有电话号码也可以登录,但此时必须保证电话号码唯一。

*/

--1,创建测试表

CREATE TABLE T

(

ID VARCHAR(20) NOT NULL PRIMARY KEY,

MOBILE VARCHAR(20)NULL

)

--2,创建索引 唯一,非聚集索引(并添加筛选条件)

CREATE UNIQUE NONCLUSTERED INDEX [IDX_MOBILE] ON [dbo].[T]

(

[MOBILE] ASC

)

WHERE ([MOBILE] IS NOT NULL)

DROP INDEX [IDX_MOBILE] on t

INSERT INTO T SELECT 'A',NULL

INSERT INTO T SELECT 'B',NULL

INSERT INTO T SELECT 'C','A'

INSERT INTO T SELECT 'D','D'

INSERT INTO T SELECT 'E','B'

INSERT INTO T SELECT 'F','C'

INSERT INTO T SELECT 'G',NULL

INSERT INTO T SELECT 'H',NULL

SELECT * FROM T

/*mysql创建唯一索引,null值直接被忽略*/

create table t

(

id varchar(20) not null PRIMARY key,

mobile varchar(20) null

)

select * from t

INSERT INTO t (id,mobile) VALUES( 'A',NULL);

INSERT INTO t (id,mobile) VALUES('B',NULL);

INSERT INTO t (id,mobile) VALUES( 'C','A');

INSERT INTO t (id,mobile) VALUES( 'D','D');

INSERT INTO t (id,mobile) VALUES( 'E','B');

INSERT INTO t (id,mobile) VALUES( 'F','C');

INSERT INTO t (id,mobile) VALUES( 'G','');

INSERT INTO t (id,mobile) VALUES( 'H','');

truncate table t

--2,创建索引 唯一

CREATE UNIQUE INDEX IDX_MOBILE ON t

(

mobile ASC

)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值