MySQL #1452 - 无法添加或更新子行

MySQL #1452 - Cannot add or update a child row

我是新手,我想做的就是插入一个 table 字段,这是一个外键,请看一下这两个 tables :

Table 类别

CREATE TABLE IF NOT EXISTS `categorie` (
    `id_cat` int(2) NOT NULL AUTO_INCREMENT,   
    `nom_cat` varchar(20) NOT NULL,   
    PRIMARY KEY (`id_cat`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

和tableAnnonce

CREATE TABLE IF NOT EXISTS `annonce` (
  `id_annonce` int(6) NOT NULL AUTO_INCREMENT,
  `titre` varchar(30) NOT NULL,
  `description` varchar(255) NOT NULL,
  `tarif` float NOT NULL,
  `deplacement` int(2) NOT NULL,
  `date_creation` date NOT NULL,
  `date_expiration` date NOT NULL,
  `image` varchar(255) NOT NULL,
  `id_cat` int(2) DEFAULT NULL,
  PRIMARY KEY (`id_annonce`),
  KEY `id_cat` (`id_cat`),
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

手动链接外键 id_cat 后(更新时设置为空,删除级联)数据库就是这样的

将数据插入类别后 table 看起来像这样

但不幸的是我无法执行此查询:

INSERT INTO annonce (id_annonce, titre, description, tarif, deplacement, 
                    date_creation, date_expiration,id_cat) 
VALUES('','anything','anything',2,3,'2017-04-01','2017-04-01',2)

错误说:

1452 - Cannot add or update a child row: a foreign key constraint fails (lametcom.annonce, CONSTRAINT annonce_ibfk_2 FOREIGN KEY (id_cat) REFERENCES annonce (id_cat) ON DELETE SET NULL ON UPDATE CASCADE)

有人能帮忙吗,很抱歉我的英语不好我希望你能明白我的意思

你的外键约束是错误的。你有

FOREIGN KEY id_cat REFERENCES annonce (id_cat)

但应该是:

FOREIGN KEY id_cat REFERENCES categorie (id_cat)

外键约束中的 table 名称必须是您要链接到的 table。