如何处理使用db2look、db2move备份和恢复数据库时的外键约束问题?DDL(使用db2look生成)在恢复数据库时会创建约束,因此在使用db2move导入数据时会发生数据错误。
发布于 2012-09-12 05:25:54
有几个选项可用于填充具有RI约束的空DB2数据库:
IMPORT语句的顺序,以防止瞬间违反RI约束。对于具有自引用外键的表,这可能不是一个选项。IMPORT填充表,而是使用LOAD实用程序,该实用程序会忽略表约束条件。LOAD将把任何有约束的目标表(及其下游的依赖表)置于检查挂起状态,这将阻止写访问。加载所有表后,对这些表使用SET INTEGRITY命令以验证它们是否满足所有constraints.ALTER TABLE语句添加到一个单独的脚本中,该脚本仅在填充所有表之后才会运行。发布于 2012-09-25 15:26:47
未强制执行ALTER TABLE ALTER FOREIGN KEY
然后重新启用:
强制执行ALTER TABLE ALTER FOREIGN KEY
谢谢,奈度
发布于 2013-01-18 16:07:42
表定义和fk约束定义最好在不同的进程中执行。为了避免在使用db2move工具加载数据时进行完整性检查,必须在执行导入/加载过程后再执行fk定义。
在运行db2look以转储数据库的ddl之后。只需将外键约束分离到单独的文件即可。最好是其他对象,如触发器、sp或视图也在不同的文件上。因此,在加载数据之后,立即执行fk constarint、触发器、sp和视图。
祝好运。
https://stackoverflow.com/questions/12366365
复制相似问题