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

nuypyhwy  于 2022-11-07  发布在  DB2
关注(0)|答案(3)|浏览(334)

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

hts6caw3

hts6caw31#

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

  • 检查数据库中的所有FK相关性,并相应地更改IMPORT语句的顺序,以防止暂时违反RI约束条件。对于具有自引用外键的表,这可能不是一个选项。
  • 请不要透过IMPORT填入表格,而是使用LOAD公用程序,它会忽略表格限制条件。LOAD会将任何具有限制条件的目标表格(及其下游相依表格)置于CHECK PENDING状态,以防止写入存取。一旦加载所有表格,请在这些表格上使用SET INTEGRITY命令,以验证它们是否满足所有限制条件。
  • 将DDL中的ALTER TABLE语句重新定位到一个单独的脚本中,该脚本仅在填充了所有表之后才运行。
oknrviil

oknrviil2#

1.首先禁用约束,然后执行db2move import。
1.将数据导入表后,重新启用约束
未强制执行更改表更改外键
然后重新启用:
已强制执行更改表更改外键
谢谢,奈度

whlutmcx

whlutmcx3#

表定义和fk约束定义最好在不同的过程中执行,为了避免在使用db2 move工具装载数据时进行完整性检查,fk定义必须在导入/装载过程之后执行。
在运行db2 look转储数据库的ddl之后,只需将外键约束分离到单独的文件中即可。如果其他对象(如triggers、sp或views)也在不同的文件中,则效果更好。因此,在加载数据之后,立即执行fk constarint、triggers、sp和views。
祝你好运

相关问题