咨询下表重命名的问题

CCTV_13 2010-01-04 04:45:24
我现在有张表A,数据量不超过2000W,我要对他做如下操作
1.重命名A为B
2.删除B上的外键
3.新建表A及外键关联

A表只引用了其他表作为外键,自己本身并没有作为任何表的外键。

我这样做只是想清理下A表的数据,放在备份的B表而已。

我想问问,这样做,有没有什么问题,是否存在安全隐患。
另外,数据量接近2000W,这个操作有没有效率问题。就是执行速度。
我在100W的数据上测试,没有发现问题。
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCTV_13 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 java3344520 的回复:]
我这样做只是想清理下A表的数据,放在备份的B表而已。

建立B表(未填充数据):CREATE B as select * from A where 1=2
建立B表(填充数据):CREATE B as select * from A
这样建立的B表无外键关系,就建立的备份表B了

然后再清理A表里的数据便可



[/Quote]
这样是实现了需求,但这样2000w的数据多出来一倍,浪费了空间,其次将数据备份到B后,清理A表的数据,这时候A中有数据且应用系统正在使用,清理起来会有所顾虑。其实我就是想问问,对千万级的表rename会不会有效率问题,对数据库有没有什么影响,比如原表的索引什么的。
wuyisky84 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 java3344520 的回复:]
我这样做只是想清理下A表的数据,放在备份的B表而已。

建立B表(未填充数据):CREATE B as select * from A where 1=2
建立B表(填充数据):CREATE B as select * from A
这样建立的B表无外键关系,就建立的备份表B了

然后再清理A表里的数据便可



[/Quote]

同意
zhengzeng 2010-01-05
  • 打赏
  • 举报
回复
路过。
iqlife 2010-01-05
  • 打赏
  • 举报
回复
CREATE TABLE B晕倒,少打了个TABLE
iqlife 2010-01-05
  • 打赏
  • 举报
回复
我这样做只是想清理下A表的数据,放在备份的B表而已。

建立B表(未填充数据):CREATE B as select * from A where 1=2
建立B表(填充数据):CREATE B as select * from A
这样建立的B表无外键关系,就建立的备份表B了

然后再清理A表里的数据便可


SambaGao 2010-01-04
  • 打赏
  • 举报
回复
关注
crazylaa 2010-01-04
  • 打赏
  • 举报
回复
要在outline模式下做吧,要不你rename得时候别人要操作杂拌?

17,377

社区成员

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

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