SQL在Oracle中创建或替换表

时间:2015-07-20 13:27:24

标签: sql oracle

我们有一个oracle数据库,我们在构建和安装过程中遇到了问题,当我们更新表模式(添加,修改列,触发器等)时,它并不总是部署到所有的实例。

现在我们通过在构建运行alter table命令等的安装步骤上添加注释来处理模式更新。但是这些总是假设您从最后一次构建开始(即构建3已安装,我们将进行4 )。如果安装了1,则可能会有更改脚本从1到2,然后是2到3,然后是3到4.所以这是一个手动过程的巨大痛苦,我们经常搞砸并错过了一个祭坛。

是否有一种简单的方法来做"创建或替换"在一张桌子上没有放弃它并丢失数据?基本上我们想要比较当前表和它应该是什么并更新它。我们不想备份表,删除它,创建它,然后恢复它。

1 个答案:

答案 0 :(得分:1)

"基本上我们想要将当前表与它应该的内容进行比较并更新它"

假设您有一个好的源版本要用于更新其他实例,您可以使用Toad的架构比较(您需要DBA Admin模块或Toad Xpert Edition)并生成更新a所需的脚本单个表,一组表或您选择的任何对象列表。

我想说在针对目标实例运行之前,仍应检查/验证脚本。某些更改可能以不同的方式处理(例如,重命名列与drop / create)。所以要小心。

还有一点需要注意的是,其他人可能会提出的问题是,这个问题在贵公司的变更管理流程中存在明显的漏洞(这个问题比这个问题要大得多)。