Mysqlエラー1452-子行を追加または更新できません:外部キー制約が失敗する原因と解決策



Mysql Error 1452 Cannot Add



エラーには、おおよそ3つの理由があります。
理由1:

追加された外部キー列と別のテーブルの一意のインデックス列(通常は主キー)のデータ型が異なります
理由2:
外部キーが追加されたテーブルタイプのストレージエンジンと別のテーブルのストレージエンジンの両方がinnodbエンジンですか?
#Viewテーブルエンジン
方法1:show create table table name
方法2:name = ‘table name’であるデータベースからのテーブルステータスを表示する
方法3:information_schemaを使用する
テーブルからtable_catalog、table_schema、table_name、engineを選択します
ここで、table_schema = ‘データベース名’およびtable_name = ‘テーブル名’
理由3:
外部キーセットが、別のテーブルの一意のインデックス列(通常は主キー)の値と一致しません
#Solution:外部キーとなる列を削除し、再度作成して、デフォルトでヌル文字にします
理由4:
新しく追加されたデータの形式が正しくありません。たとえば、外部キー列の新しいデータの形式が正しくない場合:
画像
このとき、データ形式が一致していないか確認する必要があります