MySQLの外部キー制約、NULLを許容している

データベース
スポンサーリンク

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にすることは可能なんですね。

 

コメント