mysql - 如何在一个查询中从多个表中删除数据

标签 mysql

我有 3 个表,像这样:

release (release_id, name, ...)

medium (medium_id, release_id, name, ...)

track (track_id, medium_id, title, ...)

只有 release_id,我希望能够使用一个查询一次性删除与该 release_id 关联的轨道和媒体。

这可能吗?如果是的话,能不能给我一个大概的模板,剩下的我自己想办法。

我需要多个删除查询吗?

最佳答案

严格来说,是的,您需要三个单独的删除语句。

但是,如果您总是希望在从“release”表中删除一行时从其他两个表中删除关联的行,则可以在“release”表上使用外键和 ON DELETE CASCADE 约束。

参见,例如http://www.mysqltutorial.org/mysql-on-delete-cascade/

关于mysql - 如何在一个查询中从多个表中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29457315/

相关文章:

php mysql while循环内部while循环查询同一个表

php - mysqli绑定(bind)参数错误

php - 如何在 PHP 中比较日期?

php - 将返回一个表的sql查询,并计算与第一个结果相关的其他表

mysql - 将表中的行复制到几乎相同的表中

java - Netbeans 结构问题

mysql - MySql 触发器中的 NEW.some_column 的 SQL Server 模拟是什么?

MySQL ODBC 问题 : Data source name not found and no default driver specified

php - 使用 php 语法在 mysql 中创建新数据库

php - 查询数据库以查找客户?