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。
我是新手,我想做的就是插入一个 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
, CONSTRAINTannonce_ibfk_2
FOREIGN KEY (id_cat
) REFERENCESannonce
(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。