gpt4 book ai didi

mysql - 无法删除或更新父行

转载 作者:可可西里 更新时间:2023-11-01 08:17:59 24 4
gpt4 key购买 nike

当我尝试从我的数据库中删除一部电影时,出现了上述错误。我相信我知道如何使评级表优先于电影表。如何让电影表优先于额定表

DELETE FROM  `film`.`films` WHERE  `films`.`movie_id` =16

--
-- Table structure for table `films`
--

CREATE TABLE IF NOT EXISTS `films` (
`movie_id` int(4) NOT NULL AUTO_INCREMENT,
`movie_title` varchar(100) NOT NULL,
`actor` varchar(100) NOT NULL,
PRIMARY KEY (`movie_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;


CREATE TABLE IF NOT EXISTS `rated` (
`rated_id` int(4) NOT NULL AUTO_INCREMENT,
`rated_name` varchar(40) NOT NULL,
`movie_id` int(4) DEFAULT NULL,
PRIMARY KEY (`rated_id`),
KEY `movie_id` (`movie_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


ALTER TABLE `rated`
ADD CONSTRAINT `rated_ibfk_1` FOREIGN KEY (`movie_id`) REFERENCES `films` (`movie_id`);

最佳答案

默认情况下,您在 movie_id 上定义的外键会限制删除:使用当前架构您不能删除电影,只要它有评级。

您可以在使用级联删除 删除影片时自动删除评分。这是否是您应用程序的最佳选择由您决定...

ALTER TABLE `rated` ADD FOREIGN KEY (`movie_id`) 
REFERENCES `films` (`movie_id`) ON DELETE CASCADE;

关于mysql - 无法删除或更新父行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18749227/

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