如何从 PHP 中的多对多关系表中删除

How to DELETE from Many to Many Realationship tables in PHP

这是我的table样子

Table : 电影

#   Name    Type
1   movie_id Pk int(11)         
2   movie_name  text

Table:流派

#   Name    Type
1   genre_id Pk int(11)         
2   genres_name text

Table : movie_genres

#   Name    Type
1   id Pk   int(11)
2   movie_id Index  int(11) 
3   genres_id Index int(11) 

那么我怎样才能删除电影中的一行,以便它在类型和 movie_genres 中的值也自动删除。

当我尝试从 phpmyadmin 中删除行时显示错误:#1451 - 无法删除或更新父行:外键约束失败(123movies.movie_actors,CONSTRAINT movie_actors_ibfk_1 外键 (movie_id) 引用 movies (movie_id))

请帮帮我!如何以正确的方式做到这一点! (在 PHP)

首先,您不应该从类型 table 中删除记录,因为这些值已经或将用于其他电影。

你得到的错误是因为你有另一个table一对多(movie_actors)用外键来防止删除电影记录,你必须删除电影table 中的演员最先能够删除电影 解决方案 : 将 movie_actor table 上的外键约束更改为 delete/update 上的级联(现在是限制)

将流派 table 的 Foriegn 键添加到电影删除时的级联:

ALTER TABLE movie_genres
ADD CONSTRAINT FK_movgen
FOREIGN KEY (`movie_id`) REFERENCES `movies` (`movie_id`) ON DELETE CASCADE ON UPDATE CASCADE;