オフライン表と外部キー

稼働中のデータベース・スキーマからJDeveloperに表をインポートする場合、外部キーについての情報は必ずしも利用できるとはかぎりません。つまり、1つ以上の表定義をオフラインで作業して、生成した情報を元のデータベースに戻すと、外部キーが失われる場合があります。疑わしい場合は、変更内容を直接データベースに反映しないようにしてください。そのかわり、SQLファイルを生成して検証し、必要であれば変更してから、データベースに対して実行してください。

以降の各項では、外部キー情報の処理方法をケース別に説明します。

外部キーの両端の表をインポート

これは最も簡単なケースであり、重要な情報が失われるおそれはありません。JDeveloperが、外部キーをその間に持つ複数の表をインポートする場合、その外部キーに関する情報もインポートされます。これにより外部キーは、データベース・ダイアグラムおよび「オフライン表の編集」ダイアログの制約情報ページに正しく表示されます。

表での作業を終了した後、その変更内容を直接データベースに反映できます。

外部キーの一端の表をインポート

JDeveloperが外部キーを持つ表をインポートする場合で、キーの他端にある表はインポートしない場合、外部キーの情報は存在しますが、非表示にされています。外部キーの他端にある表が続けてインポートされた場合、外部キーの情報は両方の表を含むデータベース・ダイアグラムまたは「オフライン表の編集」ダイアログの制約情報ページに正しく表示されます。外部キーの他端の表がインポートされない場合は、外部キーの情報は非表示にされ、データベースに変更内容を生成する場合、外部キーは削除されます。それが意図したものでなければ、変更を直接データベースに加えるのではなく、SQLファイルを生成する必要があります。SQLファイルを実行する前に編集して、不要なDROP文を削除できます。

最適な方法

前述の情報から、新しいデータベース・スキーマの基本として機能する表をインポートしている場合、使用しない表に対する外部キーについて注意する必要がないことがわかります。安全に変更し、オンライン表を新しいスキーマに生成できます。

しかし、表をインポートして希望する変更を行い、同じデータベース・スキーマに変更を反映する場合には、次のいずれかを実行する必要があります。


データベース・ツール