无法将值插入 table,外键约束一直失败

Can't insert values into table, foreign key constraint keeps failing

我正在尝试将此代码插入我的 MySQL 数据库中的相册 table

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`))

我知道这与我在 table 中的外键有关,但我需要手动输入外键,因为它不会自动递增。

这是 table 的代码。

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

我该如何解决这个问题?我需要将数据输入 table.

使用外键并不意味着任何隐式自动递增。 table 中的外键意味着一条记录必须已经存在于另一条记录中。 请参阅 http://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html(根据您的需要在 url 中更改版本)

否则,如果要动态创建艺术家,请触发。

希望它会澄清。

artistid是tableAlbums中的外键。当您尝试在父 table 中不存在的子 table 中插入外键时,会出现父子关系错误。 artistid 不在您的 Artist table 中。

此外,添加 artistid 的数据类型也不同。

取自mysql docs

Foreign key relationships involve a parent table that holds the central data values, and a child table with identical values pointing back to its parent. The FOREIGN KEY clause is specified in the child table.

It will reject any INSERT or UPDATE operation that attempts to create a foreign key value in a child table if there is no a matching candidate key value in the parent table.

要消除错误,请先将 Queens 艺术家插入 Artist table,然后再将其插入 Albums table。同时更正列 artistid.

的数据类型