
正文
怎么删除oracle分区 删除oracle数据库表分区
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle中怎么删除分区表?
可以用 ALTER TABLE DROP PARTITION 来删除分区,元数据和数据将被一并删除。\x0d\x0a全删除\x0d\x0aALTER TABLE yourTable DROP PARTITION partionName1;\x0d\x0a清数据\x0d\x0aALTER TABLE yourTable TRUNCATE PARTITION partionName1;\x0d\x0a语句虽简单、操作需谨慎。
相关问答
Q1: ORACLE分区表用什么方法删除一个分区的所有数据
这个要看你的业务要不要备份保留这个分区的数据,如果不需要保留,可以直接truncate/drop分区的,如果要保留,可以用交换分区方法;
具体步骤:
1.不保留,直接删除:
alter
table
table_name
drop/truncate
partition
partition_name;
具体用drop还是truncate,得你自己衡量,drop的话原来的分区和数据直接就没有了,truncate的话,只是数据没有了,分区还在。
2.保留数据作为备份,交换分区
2.1创建一个表结构一样的表:
create
table
teable_bak
as
select
*
from
table_name
where
1=2;
--只要表结构,不要数据;
2.2分区交换
alter
table
table_name
exchange
partition
partition_name
with
table
table_bak;
这样执行后,分区partition_name的数据就会交换到table_bak中,table_bak的数据(刚刚建的空表)就会到分区里面去。
Q2: oracle 有全局索引怎么删除分区
ALTER
TABLE
DROP
PARTITION
用于删除table中某个PARTITION和其中怎么删除oracle分区的数据怎么删除oracle分区,主要是用于历史数据的删除。如果还想保留数据怎么删除oracle分区,就需要合并到另一个partition中。
删除该partition之后,如果再insert该partition范围内的值,要存放在更高的partition中。如果怎么删除oracle分区你删除怎么删除oracle分区了最大的partition,就会出错。
删除table
partition的同时,删除相应的local
index。即使该index是IU状态。
如果table上有global
index,且该partition不空,drop
partition会使所有的global
index
为IU状态。如果不想REBUIL
INDEX,可以用SQL语句手工删除数据,然后再DROP
PARTITION.
例子:
ALTR
ATBEL
sales
DROP
PARTITION
dec96;
到底是DROP
PARTITION或者是DELETE?
如果GLOBAL
INDEX是最重要的,就应该先DELETE
数据再DROP
PARTITION。
在下面情况下,手工删除数据的代价比DROP
PARTITION要小
-
如果要删除的数据只占整个TABLE的小部分
-
在TABLE中有很多的GLOBAL
INDEX。
在下面情况下,手工删除数据的代价比DROP
PARTITION要大
-
如果要删除的数据占整个TABLE的绝大部分
-
在TABLE中没有很多的GLOBAL
INDEX。
如果在TABLE是父TABLE,有被引用的约束,且PARTITION不空,DROP
PARTITION时出错。
如果要删除有数据的PARTITION,应该先删除引用约束。或者先DELETE,然后再DROP
PARTITION。
如果TABLE只有一个PARTITON,不能DROP
PARTITION,只能DROP
TABLE。
关于怎么删除oracle分区和删除oracle数据库表分区的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






