码迷,mamicode.com
首页 > 数据库 > 详细

sql server与mysql 中创建唯一索引

时间:2015-07-15 12:39:41      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:


/*筛选索引 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
)

sql server与mysql 中创建唯一索引

标签:

原文地址:http://www.cnblogs.com/wtujedp/p/4647672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!