![]() |
1
2
创建一个创建正确外键关系的脚本,运行图表工具,然后运行第二个删除外键的脚本。 这将允许您使用您的工具,而不会对数据库造成太多干扰。如果第一个脚本失败,那么您将知道数据也有问题。 [编辑]如果有一些规则如何命名外键列,您可以使用脚本语言为您生成SQL。 如果这也失败了,任何设计工具都应该允许您创建缺少的关系。这意味着您可能会遇到数据不一致的情况。这里的解决方案是创建表定义的快照,并在专用数据库服务器上重新创建数据库(不包含数据)。在那里,你可以在不破坏原有系统的情况下尽可能多地扰乱设计。 当您完成修复设计时,您可以提取命令来创建外键并将其应用到实际系统中——如果您愿意的话。这样,你就可以感觉到数据库中的混乱程度有多大。如果没有,那么您可以简单地保留新的副本,在那里进行任何设计更改,并且在检查完毕后,可以将更改迁移到生产数据库。
在我自己的系统中,我总是有脚本来快速创建当前开发和生产数据库的克隆。通常,我使用嵌入式数据库,如derby或hsql。但是,如果向进程添加筛选器,则可以使用
这使得我们能够验证各种修复,比较两个迁移等。因为整个过程是100%自动的,因此创建一个新的模式比修复一个现有的模式变得更加便宜。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 6 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 7 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 7 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 7 月前 |
![]() |
Sax · 规范化Google表格(第一步) 7 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 7 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 7 月前 |