十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果是全表删除可以用truncate;
龙山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
让然也可以把表结构复制出来,然后drop,在执行一次刚刚复制出来的ddl语句重建表就好了
如果是分区表,那么可以直接对分区进行truncate和drop操作
alter table 表名 truncate partition 分区名;
只是清空分区数据,不删表,也不回滚,效率超高。
oracle是没有直接删除全部分区或多个分区的语句,但是可以变通方法
方法一:先备份表,再删除表、重新创建表;
方法二:拼接
sql语句
,比如
SELECT
'ALTER
TABLE
LOG_INFO
DROP
PARTITION
'
||
PARTITION_NAME
||
';'
FROM
USER_TAB_PARTITIONS
WHERE
TABLE_NAME
=
'LOG_INFO';
可以列出删除所有分区的语句,全部执行即可。
这个要看你的业务要不要备份保留这个分区的数据,如果不需要保留,可以直接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的数据(刚刚建的空表)就会到分区里面去。
可以用
ALTER
TABLE
DROP
PARTITION
来删除分区,元数据和数据将被一并删除。
全删除
ALTER
TABLE
yourTable
DROP
PARTITION
partionName1;
清数据
ALTER
TABLE
yourTable
TRUNCATE
PARTITION
partionName1;
语句虽简单、操作需谨慎。