执行SQL查询报错Foreign key constraint is incorrectly formed如何解决
报错原因
核心问题是建表顺序不符合外键约束要求:
创建posts表时,你定义了外键auteur_id关联auteurs表的id字段,但此时auteurs表还未创建,MySQL无法校验关联字段的合法性,因此抛出Foreign key constraint is incorrectly formed错误。
你当前代码中两个表的关联字段类型(auteurs.id和posts.auteur_id均为int(11))是匹配的,不存在其他类型不匹配问题。
修复方法
调整两张表的创建顺序,先创建被关联的父表auteurs,再创建子表posts即可,修正后的完整代码如下:
DROP DATABASE IF EXISTS foodblog; CREATE DATABASE foodblog; USE foodblog; -- 先建被外键引用的父表auteurs CREATE TABLE auteurs ( id int(11) AUTO_INCREMENT, auteur varchar(255), PRIMARY KEY (id) ); -- 再建子表posts CREATE TABLE posts ( id int(11) AUTO_INCREMENT, titel varchar(255), datum DATETIME DEFAULT current_timestamp(), img_url varchar(255), inhoud text, auteur_id int(11), PRIMARY KEY (id), FOREIGN KEY (auteur_id) REFERENCES auteurs(id) );
内容的提问来源于stack exchange,提问作者Mauro
相关产品推荐
相关产品推荐

