首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >db2move导入具有外键约束的表中的数据

db2move导入具有外键约束的表中的数据
EN

Stack Overflow用户
提问于 2012-09-11 17:10:33
回答 3查看 4.8K关注 0票数 0

如何处理使用db2look、db2move备份和恢复数据库时的外键约束问题?DDL(使用db2look生成)在恢复数据库时会创建约束,因此在使用db2move导入数据时会发生数据错误。

EN

回答 3

Stack Overflow用户

发布于 2012-09-12 05:25:54

有几个选项可用于填充具有RI约束的空DB2数据库:

  • 检查数据库中的所有FK依赖项,并相应地更改IMPORT语句的顺序,以防止瞬间违反RI约束。对于具有自引用外键的表,这可能不是一个选项。
  • 不通过IMPORT填充表,而是使用LOAD实用程序,该实用程序会忽略表约束条件。LOAD将把任何有约束的目标表(及其下游的依赖表)置于检查挂起状态,这将阻止写访问。加载所有表后,对这些表使用SET INTEGRITY命令以验证它们是否满足所有constraints.
  • Relocate。将SET INTEGRITY中的ALTER TABLE语句添加到一个单独的脚本中,该脚本仅在填充所有表之后才会运行。
票数 2
EN

Stack Overflow用户

发布于 2012-09-25 15:26:47

  1. 首先禁用约束,然后执行db2move import。
  2. 将数据导入表后,重新启用constraints

未强制执行ALTER TABLE ALTER FOREIGN KEY

然后重新启用:

强制执行ALTER TABLE ALTER FOREIGN KEY

谢谢,奈度

票数 0
EN

Stack Overflow用户

发布于 2013-01-18 16:07:42

表定义和fk约束定义最好在不同的进程中执行。为了避免在使用db2move工具加载数据时进行完整性检查,必须在执行导入/加载过程后再执行fk定义。

在运行db2look以转储数据库的ddl之后。只需将外键约束分离到单独的文件即可。最好是其他对象,如触发器、sp或视图也在不同的文件上。因此,在加载数据之后,立即执行fk constarint、触发器、sp和视图。

祝好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12366365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档