发布网友 发布时间:2022-04-23 15:26
共2个回答
热心网友 时间:2022-04-10 08:58
delete本来就不释放表空间的啊
truncate table 表名 --这样才释放表空间如果你只是delete 部分数据 比如你把id=1的删除掉
但你还想释放表空间,需要借助一下临时表
分步给你执行一下
delete from 表名 where id=1;
commit;--以上为删除数据
create table tmp as select * from 表名;--将目前表内的数据暂时放到tmp表中
truncate table 表名;--清空原表数据
insert into 表名 select * from tmp;--将临时表数据反插回去
commit;
drop table tmp;--将临时表删除
热心网友 时间:2022-04-10 10:16
oracle中所有的delete操作几乎都不释放空间
要释放空间的话:
可以删除所有数据的情况: truncate
有停机时间的情况: alter table xx move
没有停机时间的情况: alter table xx shrink space
from askmaclean