【发布时间】:2016-07-08 04:07:43
【问题描述】:
我正在尝试将此代码插入到我的 MySQL 数据库上的相册表中
INSERT INTO `Albums` (`Albumid`, `Name`, `Numberoftracks`, `Artistid`, ]
`Genre`) VALUES (1, "Innuendo", 12, "Queen", "Rock");
但每次我尝试时都会收到此错误。
1452 - Cannot add or update a child row: a foreign key constraint fails
(`b4014107_db1/Albums`, CONSTRAINT `Albums_ibfk_1` FOREIGN KEY (`Artistid`)
REFERENCES `Artist` (`Artistid`))
我知道这与表中的外键有关,但我需要手动输入外键,因为它不是自动递增的。
这是表格代码。
CREATE TABLE `Albums` ( `Albumid` int(6) NOT NULL, `Name` varchar(50) NOT
NULL, `Numberoftracks` int(11) NOT NULL, `Artistid` int(6) NOT NULL,
`Genre` varchar(50) NOT NULL, PRIMARY KEY (`Albumid`), KEY `Artistid`
(`Artistid`), CONSTRAINT `Albums_ibfk_1` FOREIGN KEY (`Artistid`)
REFERENCES `Artist` (`Artistid`)) ENGINE=InnoDB DEFAULT CHARSET=latin1
我该如何解决这个问题?我需要在表格中输入数据。
【问题讨论】:
-
您在艺术家表中添加了艺术家“女王”吗?因为如果没有,你应该先添加艺术家,否则你的 FK 将永远被违反。
-
另外,ArtistId 是一个数字,您正尝试在其中添加一个 VARCHAR。您应该在表艺术家上添加艺术家“女王”并获取 ArtistId 以在您的此插入中使用。