关于按照日期为条件删除某个表中的数据

m0_58111096 2021-05-18 05:09:07
有个项目,表名ts_sif_dat01,创建时改表的最大空间为32G,现在已使用29%,想要以2020年5月20日为条件删除之前的数据,请大神指点,这样是不是最优的方法,SQL语句如下: 1、create table ts_sif_dat01_back as select * from ts_sif_dat01 where sys_time>='2020-05-20'; 2、select * from table ts_sif_dat01_back; 3、drop table ts_sif_dat01: 4、alter ts_sif_dat01_back rename to ts_sif_dat01; 请各位大神指正。
...全文
1806 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_58111096 2021-05-20
  • 打赏
  • 举报
回复
引用 5 楼 black_warror的回复:
用truncate table 表名,可以在删除数据的同时不影响表结构,速度也快,不需要删了又建
感谢大神🙏
m0_58111096 2021-05-20
  • 打赏
  • 举报
回复
引用 4 楼 js14982的回复:
直接删除表 drop table ts_sif_dat01,空间并不会得到释放,只是将表移入回收站,该表可以被恢复,空间也并没有释放出来。
感谢大神感谢大神指点
black_warror 2021-05-20
  • 打赏
  • 举报
回复
用truncate table 表名,可以在删除数据的同时不影响表结构,速度也快,不需要删了又建
js14982 2021-05-20
  • 打赏
  • 举报
回复
直接删除表 drop table ts_sif_dat01,空间并不会得到释放,只是将表移入回收站,该表可以被恢复,空间也并没有释放出来。
js14982 2021-05-20
  • 打赏
  • 举报
回复
不是,如果确定原来需要删除的数据不需要(就是也不需要找回了,完全删除释放空间)。第三步先把原表truncate掉再删除,即 truncate table ts_sif_dat01; drop table ts_sif_dat01 purge;
m0_58111096 2021-05-18
  • 打赏
  • 举报
回复
我是小白,各位大神看看语句本身有没有问题,请大神给提提建议。
m0_58111096 2021-05-18
  • 打赏
  • 举报
回复
我是小白,各位大神看看语句本身有没有问题,请大神给提提建议。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧