参照整合性制約は外部キー制約とも呼ばれ、外部参照キーが親テーブルに存在することを保証する制約です。

参照整合性制約(外部キー制約)を付与することで、以下のことが保証されます。

  • 子テーブルの外部キーは必ず親テーブルに存在する。

 

これを保証するために、以下の制限が課されます。

  • 親テーブルに存在しないキーを子テーブルに追加すること(子を追加するときは親に存在するもののみ)
  • 子テーブルに存在するキーを親テーブルで削除すること(親を削除するときは子にないもののみ)

 

この制限により、親子テーブルの追加、削除は以下の順番に制限されます。

  • 追加は親テーブル→子テーブルの順で行わなければならない
  • 削除は子テーブル→親テーブルの順で行わなければならない

 

また、オプションで連鎖削除=Trueにしておくことで、子テーブルに存在していても親テーブルを削除できるようになります。この時、自動的に子テーブルを削除します。

また、オプションで連鎖更新=Trueにしておくことで、子テーブルに存在していても親テーブルの主キーを更新(変更)できるようになります。この時、自動的に子テーブル側の外部キーを更新(変更)します。