使用内部联接删除行时具有外键约束

时间:2013-05-16 15:47:57

标签: mysql sql

DELETE
    a,b,c
FROM 
sp_movie.movie_db AS a
INNER JOIN sp_movie.movie_time AS b
      ON a.Movie_ID = b.Movie_ID
INNER JOIN sp_movie.movie_time AS c
      ON c.Movie_ID = a.Movie_ID
WHERE 
    a.Movie_ID = 29

我正在尝试删除具有Movie_ID = 29

的所有三个表中的所有行

我甚至试过写这个 DELETE a FROM.....

我遇到错误:Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails ( sp_movie . movie_actor , CONSTRAINT 2 FOREIGN KEY ( Movie_ID ) REFERENCES movie_db ( Movie_ID ) ON DELETE NO ACTION ON UPDATE NO ACTION)

2 个答案:

答案 0 :(得分:0)

您可以先执行多个查询并从movie_time删除行,然后分别删除movie_db行。在运行上述查询之前,您还可以使用SET foreign_key_checks = 0

答案 1 :(得分:0)

我通过为on cascadetime

设置actors的外键引用操作来解决此问题