通常のインポートの順序では、参照制約はすべての表がインポートされた後にインポートされます。この順序でインポートすることによって、まだインポートされていないデータに対する参照整合性制約が存在する場合に発生するエラーを回避できます。
データが既存の表にロードされる場合に、このようなエラーが発生することがあります。たとえば、表emp
でmgr
列に参照整合性制約が定義されており、その制約によって表emp
内のマネージャ番号が検証される場合、マネージャの行がインポートされていない時点では、従業員の行が基準を満たしていても、参照整合性制約の違反になることがあります。
このようなエラーが発生すると、エラー・メッセージが生成され、失敗した行をバイパスして、引き続き他の行が表にインポートされます。制約を手動で使用禁止にすると、このエラーを回避できます。
複数の表にまたがって参照制約が存在すると、問題になることがあります。たとえば、emp
表の順序がエクスポート・ダンプ・ファイル内でdept
表より先であるにもかかわらず、emp
表からdept
表へ参照チェックが行われると、参照制約違反のため、emp
表のいくつかの行がインポートされないことがあります。
このようなエラーが発生しないようにするには、データを既存の表にインポートするときに、参照整合性制約を使用禁止にします。