您的位置:首页 > 运维架构

12.2 使用DROP INDEX删除索引

2016-07-26 18:41 309 查看
12.2 使用DROP INDEX删除索引

使用DROP INDEX语句删除索引。因为索引逻辑和物理上独立于相关表中的数据,在任何时候删除索引都不会影响表(或其他索引)。如果删除了索引,所有SQL程序和应用会继续正常运行,但访问先前有索引的数据会变慢。

删除索引通常是因为:

相关表很小(或已被删除)或用户不再访问索引列,因此不再需要索引;

在插入、更新和删除操作后DBMS维护索引所需的时间超过了索引加速检索而节约的时间。

SQL标准未包含索引,因此不同DBMS的SQL索引语句有所差异。本节介绍本书涉及的DBMS如何删除索引。对于不同的DBMS,请查阅文档的index部分了解如何删除索引。

对于Oracle、DB2和PostgreSQL,一个数据库中的索引名唯一,因此当删除索引时不必指明表名。对于Microsoft Access、Microsoft SQL Server和MySQL,一个表中索引名唯一,但在不同的表中可以使用相同的索引名,因此必须指明要删除的索引的表名。本节的例子删除代码12-1创建的索引。

在Microsoft Access或MySQL中删除索引中

输入:

DROP INDEX index 
ON table; 

index是要删除的索引名,table是索引相关表的名称(代码12-4a)。

代码12-4a 删除索引pub_id_idx (Microsoft Access或MySQL)

DROP INDEX pub_id_idx  
  ON titles; 

在Microsoft SQL Server中删除索引中

输入:

DROP INDEX table.index;  

index是要删除的索引名,table是索引相关表的名称(代码12-4b)。

代码12-4b 删除索引pub_id_idx(Microsoft SQL Server)

DROP INDEX titles.pub_id_idx 

在Oracle、DB2或PostgreSQL中删除索引中

输入:

DROP INDEX index; 

index是要删除的索引名(代码12-4c)。

代码12-4c 删除索引pub_id_idx(Oracle、DB2或PostgreSQL)

DROP INDEX pub_id_idx; 

"提示

无法删除DBMS为主键约束和唯一约束自动创建的索引(见第11章)。

[align=right]【责任编辑:云霞 TEL:(010)68476606】[/align]
[align=right]
[/align]
[align=right]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: