Foreign key Dialog¶
外部キー ダイアログを使用して、外部キー制約の動作を指定します。外部キー制約は、2つのテーブル間の参照整合性を維持します。一時表と永続表の間に外部キー制約を定義することはできません。
外部キー ダイアログは、次のダイアログタブを介して外部キー制約の開発を編成します。 一般 、 定義 、 列 、および アクション 。 SQL タブには、ダイアログ選択によって生成されたSQLコードが表示されます。
[ 全般 ]タブのフィールドを使用して、外部キー制約を識別します。
Name フィールドを使用して、外部キーの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。
コメント フィールドに外部キー制約に関するメモを保存します。
[ 定義 ]タブをクリックして続行します。
[ 定義 ]タブのフィールドを使用して、外部キー制約を定義します。
Deferrable? スイッチを Yes の位置に移動して、制約が遅延可能であり、ステートメントの最後まで延期できることを指定します。デフォルトは いいえ です。
有効になっている場合、 Deferred? スイッチを Yes の位置に移動して、制約のタイミングをステートメントの最後に延期することを指定します。デフォルトは いいえ です。
Matchtype スイッチを移動して、制約によって適用されるマッチングのタイプを指定します。
いずれかの列がNULLの場合、マルチ列外部キーのすべての列をNULLにする必要があることを示すには、 Full を選択します。すべての列がnullの場合、参照先のテーブルで行が一致する必要はありません。
単一の外部キー列をnullにできるように指定するには、[ シンプル ]を選択します。いずれかの列がnullの場合、参照先のテーブルで行が一致する必要はありません。
Validated スイッチを Yes の位置に移動して、このダイアログへの変更を保存するときに既存のテーブルのコンテンツを(外部キーまたはチェック制約に対して)検証するようにサーバーに指示します。
自動FKインデックス スイッチを いいえ の位置に移動して、自動インデックス機能を無効にします。
AutoFKIndex スイッチが Yes の位置にある場合、 CoveringIndex の横にあるフィールドはインデックスの名前を生成します。または、このフィールドは無効になっています。
[ 列 ]タブをクリックして続行します。
[ 列 ]タブのフィールドを使用して、1つ以上の参照列を指定します。外部キー制約では、テーブルの1つ以上の列に、参照されるテーブルの行の参照される列の値と一致する値のみが含まれている必要があります。
ローカル列 の横にあるドロップダウンリストボックスを使用して、外部テーブルと比較する現在のテーブルの列を指定します。
References の横にあるドロップダウンリストボックスを使用して、比較列が存在するテーブルの名前を指定します。
Referencing の横にあるドロップダウンリストボックスを使用して、外部テーブルの列を指定します。
追加 アイコン(+)をクリックして、リストに列を追加します。上記の手順を繰り返し、 追加 アイコン(+)をクリックして列を追加します。エントリを破棄するには、エントリの左側にあるゴミ箱アイコンをクリックし、 DeleteRow ポップアップで削除を確認します。
[ アクション ]タブをクリックして続行します。
[ アクション ]タブのドロップダウンリストボックスを使用して、テーブル内のデータが更新または削除されたときに実行される外部キー制約に関連する動作を指定します。
Onupdate の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが更新されたときに実行されるアクションを選択します。
削除時 の横にあるドロップダウンリストボックスを使用して、テーブル内のデータが削除されたときに実行されるアクションを選択します。
サポートされているアクションは次のとおりです。
アクションなし |
削除または更新により外部キー制約違反が作成されることを示すエラーを生成します。制約が据え置かれている場合、参照する行がまだ存在すると、このエラーが制約チェック時に生成されます。これがデフォルトです。 |
制限 |
削除または更新によって外部キー制約違反が発生することを示すエラーをスローします。これは、チェックが遅延可能でないことを除いてNOACTIONと同じです。 |
カスケード |
削除した行を参照している行を削除するか、参照している列の値を参照されている列の新しい値にそれぞれ更新します。 |
NULLに設定 |
参照する列をnullに設定します。 |
デフォルトに設定 |
参照する列をデフォルト値に設定します。参照されるテーブルには、デフォルト値と一致する行が必要です(nullでない場合)。そうでない場合、操作は失敗します。 |
SQL タブをクリックして続行します。
外部キー ダイアログに入力すると、SQLコマンドが生成されます(以下の例を参照)。確認には SQL タブを使用します。再アクセスするかタブを切り替えて、SQLコマンドを変更します。
例¶
以下は、 外部キー ダイアログでのユーザー選択によって生成されたsqlコマンドの例です。
ここに示す例は、 jobhist テーブルの dept_no 列の値を dept テーブルの deptno 列の値と一致させる jobhist_ref_dept_fk という名前の外部キー制約を作成する方法を示しています。
Info ボタン(i)をクリックして、オンラインヘルプにアクセスします。
Save ボタンをクリックして作業を保存します。
作業を保存せずに終了するには、 閉じる ボタンをクリックします。
Reset ボタンをクリックして、構成パラメーターを復元します。