感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

外部キーについて、メモ。

<スポンサーリンク>

外部キーは、あるテーブルの列で、別のテーブルの主キーを参照する。
キーは制約(constraint)と呼ばれる構造の中で作成される。
外部キーに挿入できるのは、そのキーの参照元のテーブル、すなわち親テーブルに存在している値だけ。
これを参照整合性(referential integrity)と呼ぶ。
外部キーが親テーブルの主キーである必要はないが、一意な値でなければならない。

外部キーを作成するメリットは、規則に違反するとエラーになり、謝ってテーブルを駄目にすることを防いでくれる。
わざわざ面倒な外部キー制約を課すことで、親テーブルに存在するものだけを挿入できるようになる。
そうすることで、テーブル間のリンクを強制する。
外部キー制約は参照整合性を保証するため、主キー側のテーブルで行の削除や主キー値の変更を試みた場合、主キー値が別のテーブルの外部キーとして使われているとエラーになる。

言い換えると、外部キーとして使われている値を持つ別のテーブルの行を削除するには、
外部キー側の行を削除する必要がある。