sql server与mysql 中创建唯一索引
2015-07-15 10:48
901 查看
/*筛选索引 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
)
/*
应用:用户表,通过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
)
相关文章推荐
- MySQL的语句执行顺序
- mysql 开放的telnet
- Mac下新安装的MySQL无法登陆root用户(安装时没有设置密码)
- mysql insert和前台显示乱码
- XMPP之安装mySQL--Mac OS(一)
- C#与mysql做ASP.NET网页数据库查询速度测试
- mysql 随机取一条或多条数据 高效率
- 请不要用SECONDS_BEHIND_MASTER来衡量MYSQL主备的延迟时间
- 不停止 MySQL 服务增加从库的两种方式
- 无法启动MYSQL服务”1067 进程意外终止”解决办法――汇总及终极方法
- mysql 中文乱码问题(mysql 5.1 , debian 6)
- 无法启动MYSQL服务”1067 进程意外终止”解决办法——汇总及终极方法
- Mysql性能优化
- Mysql性能优化
- mysql乐观锁总结和实践
- MySQL配置文件mysql.ini参数详解、MySQL性能优化
- [批处理教程之MySQL]001.MySQL 常用命令大全
- csv批量导入mysql命令
- Mysql 奇怪的连接错误
- mysql 数据库优化技巧