当前位置:  开发笔记 > 数据库 > 正文

Oracle从主表填充备份表

如何解决《Oracle从主表填充备份表》经验,为你挑选了1个好方法。

我当前分配给的程序要求在实际处理之前将表的内容复制到备份表.

在代码审查期间,一位同事指出了这一点

INSERT INTO BACKUP_TABLE
SELECT *
FROM PRIMARY_TABLE

风险太大,因为表可能有不同的列和不同的列顺序.

我也受限于不创建/删除/重命名表.〜唉〜

表中的列预计会发生变化,因此简单地对列名进行硬编码并不是我正在寻找的解决方案.

我正在寻找合理的非风险方式来完成这项工作.



1> Jim Hudson..:

备份表是否存在?它是永久保存数据还是只是当前值的副本?

关于无法创建/删除/重命名/复制太糟糕了.否则,如果它是短期的,只是在出现问题时使用,那么你可以在处理开始时删除它并做类似的事情

create table backup_table as select * from primary_table;

你最好的选择可能是选择明确,如

insert into backup_table () select  from primary_table;

您可以通过从数据字典构建SQL字符串,然后立即执行来生成它.但是,如果backup_table不包含primary_table中的所有重要列,那么您仍将面临风险.

可能只是想明确它,如果backup_table不存在,或者primary_table中的任何列都不在backup_table中,则会引发重大错误.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有