无法将值插入 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
的数据类型也不同。
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
.
的数据类型
我正在尝试将此代码插入我的 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
的数据类型也不同。
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
.