0

db2look、db2move を使用してデータベースをバックアップおよび復元する際に、外部キー制約の問題を処理する方法を教えてください。(db2look を使用して生成された) DDL は、データベースの復元中に制約を作成するため、db2move を使用してデータをインポートするときにデータ エラーが発生します。

4

3 に答える 3

2

RI 制約のある空の DB2 データベースにデータを取り込むには、いくつかのオプションがあります。

  • データベース内のすべての FK 依存関係を調べ、IMPORTそれに応じてステートメントの順序を変更して、RI 制約の一時的な違反を防ぎます。これは、自己参照外部キーを持つテーブルのオプションではない場合があります。
  • を介してテーブルに入力する代わりに、テーブルの制約を無視するLOADユーティリティをIMPORT使用します。LOAD は、制約のあるターゲット テーブル (およびその下流の従属テーブル) を CHECK PENDING ステータスにし、書き込みアクセスを防止します。すべてのテーブルがロードされたら、それらのテーブルでSET INTEGRITYコマンドを使用して、それらのテーブルがすべての制約を満たしていることを確認します。
  • DDL 内のALTER TABLEステートメントを別のスクリプトに再配置します。このスクリプトは、すべてのテーブルにデータが入力された後にのみ実行されます。
于 2012-09-11T21:25:54.490 に答える
0

テーブル定義と fk 制約定義は別プロセスで実行した方がよい。db2move ツールを使用してデータをロードするときに整合性チェックを回避するには、インポート/ロード プロセスを実行した後で fk 定義を実行する必要があります。

db2look を実行してデータベースの ddl をダンプした後。外部キー制約を別のファイルに分離するだけです。トリガー、sp、または別のファイルのビューのような他のオブジェクトも良いでしょう。したがって、データをロードした直後に、fk constarint、トリガー、sp、およびビューを実行します。

幸運を。

于 2013-01-18T08:07:42.340 に答える
0
  1. 最初に制約を無効にしてから、db2move import を実行します。
  2. データをテーブルにインポートした後、制約を再度有効にします

ALTER TABLE ALTER FOREIGN KEY は適用されません

次に、再度有効にします。

ALTER TABLE ALTER FOREIGN KEY 強制

ありがとう、ナイドゥ

于 2012-09-25T07:26:47.103 に答える