gpt4 book ai didi

mysql外键约束

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:28 25 4
gpt4 key购买 nike

我对 mysql 不是很熟悉,当我尝试更新数据库时,出现以下错误:

Cannot add or update a child row: a foreign key constraint fails (lhollowa.Concert, CONSTRAINT Concert_ibfk_1 FOREIGN KEY (BandID) REFERENCES Bands (BandID))

我对自己做错了什么一无所知,有人能指出我正确的方向吗?

这是我的一些(其余的会占用太多空间)。

 DROP TABLE IF EXISTS `Bands`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `Bands` (
`BandID` int(11) NOT NULL AUTO_INCREMENT,
`BandName` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
PRIMARY KEY (`BandID`)
);

DROP TABLE IF EXISTS `Songs`;

CREATE TABLE `Songs` (
`SongID` int(11) NOT NULL AUTO_INCREMENT,
`SongTitle` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
PRIMARY KEY (`SongID`)
) ENGINE=InnoDB AUTO_INCREMENT=481 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


CREATE TABLE `Concert` (
`ConcertID` int (40) NOT NULL AUTO_INCREMENT,
`BandID` INT (40) NOT NULL DEFAULT '0',
`Concert_Time` varchar (20) COLLATE utf8_unicode_ci DEFAULT NULL,
`Venue_Name` varchar (40) COLLATE utf8_unicode_ci DEFAULT NULL,
`Number_Seats` int (10) NOT NULL DEFAULT '0',
`Number_Tickets` int (10) NOT NULL DEFAULT '0',
PRIMARY KEY (ConcertID),
FOREIGN KEY (BandID) REFERENCES Bands(BandID)
);

INSERT INTO `Concert` VALUES (82838283,1111111, 'noon', 'the razz', 139, 138);

最佳答案

该错误告诉您您正试图在 BandId 存在于 Bands 表中之前将记录插入到 Concert 表中。

外键是两个表之间的约束。外键标识一个表中的列引用另一个表中的列。

由于您在 ConcertBands 表之间设置了外键,因此该记录必须存在于 Bands 中,否则您将获得错误信息。因此,您必须先将 ID 为 1111111 的乐队插入 Bands,然后才能为他们创建音乐会记录。

参见 SQL Fiddle with Demo显示工作版本。

关于mysql外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13884907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com