Foreign key Dialog

外部キー ダイアログを使用して、外部キー制約の動作を指定します。外部キー制約は、2つのテーブル間の参照整合性を維持します。一時テーブルと永続テーブルの間に外部キー制約を定義することはできません。

外部キー ダイアログは、次のダイアログタブを使用して外部キー制約の開発を編成します。 全般 、 定義 、 列 、および アクション 。 SQL タブには、ダイアログ選択によって生成されたSQLコードが表示されます。

外部キーダイアログの一般タブ

[ General ]タブのフィールドを使用して、外部キー制約を識別します。

  • Name フィールドを使用して、外部キーの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。

  • Comment フィールドに外部キー制約に関するメモを保存します。

[ 定義 ]タブをクリックして続行します。

外部キーダイアログ定義タブ

[ 定義 ]タブのフィールドを使用して、外部キー制約を定義します。

  • Deferrable? スイッチを Yes の位置に移動して、制約が遅延可能であり、ステートメントの最後まで延期できるタイミングを指定します。デフォルトは いいえ です。

  • 有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、制約のタイミングをステートメントの最後に延期することを指定します。デフォルトは いいえ です。

  • Matchtype スイッチを移動して、制約によって適用されるマッチングのタイプを指定します。

    • Full を選択して、いずれかの列がnullの場合、マルチカラム外部キーのすべての列をnullにする必要があることを示します。すべての列がnullの場合、行は参照先テーブルで一致する必要はありません。

    • Simple を選択して、単一の外部キー列をnullにできることを指定します。いずれかの列がnullの場合、行は参照先テーブルで一致する必要はありません。

  • Validated スイッチを Yes 位置に移動して、このダイアログへの変更を保存するときに既存のテーブルコンテンツを(外部キーまたはチェック制約に対して)検証するようにサーバーに指示します。

  • AutoFKIndex スイッチを No の位置に動かして、自動インデックス機能を無効にします。

  • CoveringIndex の横にあるフィールドは、 AutoFKIndex スイッチが Yes の位置にある場合、インデックスの名前を生成します。または、このフィールドは無効になっています。

[ 列 ]タブをクリックして続行します。

外部キーダイアログの列タブ

Columns タブのフィールドを使用して、1つ以上の参照列を指定します。外部キー制約では、テーブルの1つ以上の列に、参照されるテーブルの行の参照される列の値と一致する値のみが含まれている必要があります。

  • Localcolumn の横にあるドロップダウンリストボックスを使用して、外部テーブルと比較する現在のテーブルの列を指定します。

  • References の横にあるドロップダウンリストボックスを使用して、比較列が存在するテーブルの名前を指定します。

  • Referencing の横にあるドロップダウンリストボックスを使用して、外部テーブルの列を指定します。

Add アイコン(+)をクリックして、リストに列を追加します。上記の手順を繰り返し、 追加 アイコン(+)をクリックして列を追加します。エントリを破棄するには、エントリの左側にあるゴミ箱アイコンをクリックし、 DeleteRow ポップアップで削除を確認します。

[ アクション ]タブをクリックして続行します。

外部キーダイアログのアクションタブ

アクション タブのドロップダウンリストボックスを使用して、テーブル内のデータが更新または削除されるときに実行される外部キー制約に関連する動作を指定します。

  • Onupdate の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが更新されたときに実行されるアクションを選択します。

  • Ondelete の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが削除されたときに実行されるアクションを選択します。

サポートされているアクションは次のとおりです。

アクションなし

削除または更新により外部キー制約違反が作成されることを示すエラーを生成します。制約が遅延されている場合、参照している行がまだ存在する場合、このエラーは制約チェック時に生成されます。これがデフォルトです。

制限

削除または更新により外部キー制約違反が作成されることを示すエラーをスローします。これはNOACTIONと同じですが、チェックが遅延可能ではありません。

カスケード

削除された行を参照している行を削除するか、参照している列の値を参照されている列の新しい値にそれぞれ更新します。

NULLに設定

参照元の列をnullに設定します。

デフォルトに設定

参照する列をデフォルト値に設定します。参照されるテーブルには、デフォルト値(nullでない場合)と一致する行が存在する必要があります。そうでない場合、操作は失敗します。

SQL タブをクリックして続行します。

外部キー ダイアログに入力すると、SQLコマンドが生成されます(以下の例を参照)。レビューには SQL タブを使用します。再アクセスするかタブを切り替えて、SQLコマンドを変更します。

例

以下は、 外部キー ダイアログでのユーザー選択によって生成されたsqlコマンドの例です。

外部キーダイアログSQLタブ

ここに示す例は、 jobhist テーブルの dept_no 列の値と dept テーブルの deptno 列の値と一致する jobhist_ref_dept_fk という名前の外部キー制約の作成を示しています。

  • Info ボタン(i)をクリックして、オンラインヘルプにアクセスします。

  • Save ボタンをクリックして作業を保存します。

  • Close ボタンをクリックして、作業を保存せずに終了します。

  • Reset ボタンをクリックして、構成パラメーターを復元します。