db2look、db2move を使用してデータベースをバックアップおよび復元する際に、外部キー制約の問題を処理する方法を教えてください。(db2look を使用して生成された) DDL は、データベースの復元中に制約を作成するため、db2move を使用してデータをインポートするときにデータ エラーが発生します。
質問する
4829 次
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
- 最初に制約を無効にしてから、db2move import を実行します。
- データをテーブルにインポートした後、制約を再度有効にします
ALTER TABLE ALTER FOREIGN KEY は適用されません
次に、再度有効にします。
ALTER TABLE ALTER FOREIGN KEY 強制
ありがとう、ナイドゥ
于 2012-09-25T07:26:47.103 に答える