可以用 ALTER TABLE DROP PARTITION 来删除分区,元数据和数据将被一并删除。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站制作、做网站、达拉特网络推广、小程序开发、达拉特网络营销、达拉特企业策划、达拉特品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供达拉特建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
全删除
ALTER TABLE yourTable DROP PARTITION partionName1;
清数据
ALTER TABLE yourTable TRUNCATE PARTITION partionName1;
语句虽简单、操作需谨慎。
ALTER
TABLE
DROP
PARTITION
用于删除table中某个PARTITION和其中的数据,主要是用于历史数据的删除。如果还想保留数据,就需要合并到另一个partition中。
删除该partition之后,如果再insert该partition范围内的值,要存放在更高的partition中。如果你删除了最大的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。
可以用
ALTER
TABLE
DROP
PARTITION
来删除分区,元数据和数据将被一并删除。
全删除
ALTER
TABLE
yourTable
DROP
PARTITION
partionName1;
清数据
ALTER
TABLE
yourTable
TRUNCATE
PARTITION
partionName1;
语句虽简单、操作需谨慎。
oracle是没有直接删除全部分区或多个分区的语句,但是可以变通方法
方法一:先备份表,再删除表、重新创建表;
方法二:拼接
sql语句
,比如
SELECT
'ALTER
TABLE
LOG_INFO
DROP
PARTITION
'
||
PARTITION_NAME
||
';'
FROM
USER_TAB_PARTITIONS
WHERE
TABLE_NAME
=
'LOG_INFO';
可以列出删除所有分区的语句,全部执行即可。