如何在使用db2look,db2move备份和还原数据库时处理外键约束问题? DDL(使用db2look生成)在恢复数据库时会产生约束,因此在使用db2move导入数据期间会发生数据错误。
答案 0 :(得分:2)
您可以使用几个选项来填充具有RI约束的空DB2数据库:
IMPORT
语句的顺序,以防止瞬间违反RI约束。对于具有自引用外键的表,这可能不是一个选项。IMPORT
填充表,而是使用忽略表约束的LOAD实用程序。 LOAD会将带有约束的任何目标表(及其下游的依赖表)置于CHECK PENDING状态,这将阻止写访问。加载完所有表后,在这些表上使用SET INTEGRITY命令验证它们是否满足所有约束。ALTER TABLE
语句重新定位到一个单独的脚本中,该脚本仅在填充了所有表后运行。答案 1 :(得分:0)
ALTER TABLE ALTER FOREIGN KEY NOT ENFORCED
然后重新启用:
ALTER TABLE ALTER FOREIGN KEY ENFORCED
谢谢, 奈杜
答案 2 :(得分:0)
最好在不同的进程中执行表格defenition和fk约束defenition。 要在使用db2move工具加载数据时避免完整性检查,必须在执行导入/加载过程后执行fk defenition。
运行db2look以转储数据库的ddl之后。只需将外键约束分离到单独的文件即可。如果另一个对象像触发器,sp或不同文件上的视图那样更好。因此,在加载数据之后,执行fk constarint,triggers,sp和views。
祝你好运。