表数据交换--急!!!!

Eric_1999 2012-09-21 03:07:02
数据库有表A,上面有索引,主键等约束,另外有一个表结构一样的B,怎样才能把表B变成表A,也就是数据是表B的,但原表A的索引,主键,外键等约束继续保留。

我用rename B to A的话,表A的约束全部没有了。请教高手。

不要说用truncate A,然后insert A select from B,这样太慢了。
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2012-09-21
  • 打赏
  • 举报
回复
导出语法,rename,然后重建
陈字文 2012-09-21
  • 打赏
  • 举报
回复
不知道这个思路可以不,既然需要重新增加约束,索引,触发器,何不自动执行呢?

DECLARE
V_TABLENAME VARCHAR2(100):='AC02';
V_SQL VARCHAR2(4000);
BEGIN
DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);

SELECT DBMS_METADATA.GET_DDL('TABLE',V_TABLENAME) INTO V_SQL FROM DUAL;



DBMS_OUTPUT.PUT_LINE(''||'==>'||V_SQL);
END;
fw0124 2012-09-21
  • 打赏
  • 举报
回复
貌似很难,我也碰到过这种问题,
最后rename后又重新把约束,索引,触发器挨个重新加上去。

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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