MySQLで外部キーでNULLは使えるんだろうか?
外部キーとは
外部キーとはテーブル同士の紐づけに用いるカラムのこと。
以下の2個のテーブルがあります。
user テーブル
user_login_history テーブル
userテーブルとuser_login_history テーブル に user_id あります。
user_login_history.user_id の値は user テーブル においては主キー (Primary Key) です。
user_login_histories テーブル では外部キー(Foreign Key) です。
主キーと外部キーはデータベースにとって、それぞれのテーブルを関連付ける機能です。
外部キー制約とは
外部キー制約とは次のような制約です。
1. 主キーに存在しない値を外部キーとして登録することはできない
2. 子テーブルの外部キーに値が登録されている親テーブルのレコードは削除できない
外部キーにNULLは許容
外部キーにNULLを入れることは可能なんでしょうか?
・https://dev.mysql.com/doc/refman/5.6/ja/create-table-foreign-keys.html
MySQL は基本的に、外部キーをすべてまたは部分的に NULL にすることが許可される
なるほど、外部キーをNULLにすることは可能なんですね。
コメント