この状況が発生した場合は、テーブルにデータがあるはずですが、データ内の属性が一致していないためです。 (推奨チュートリアル: navicat チュートリアル )
この問題を解決する最も単純かつ大雑把な方法
テーブル内のすべてのデータを削除してから外部キーを作成します;
削除することに耐えられない場合は、2 つのテーブルで対応しない属性を見つけてください。 !
外部キー作成の前提条件:
1: 参照テーブルのフィールドが存在するかどうか。
2: 参照テーブルのフィールドが存在するかどうか。外部キーはインデックスである必要があり、外部キー フィールドは他のテーブルの主キーです。 3: 両方とも innodb テーブルです。 4: フィールドの型は同じです。 5: 構文は正しいです2 つの MySQL テーブル間に外部キー関係を確立するには、次の 3 つの条件を満たす必要があります: ###
* 两个表必须是InnoDB表类型。 * 使用在外键关系的域(字段)必须为索引型(Index)。所以要为设置外键的字段建立index * 使用在外键关系的两个域(字段)数据类型要相同。
以上がNavicat による外部キー追加エラー 1452の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。