-1

我想同时从数据库中删除许多表,我怎样才能实现这样的目标?有什么特别的查询或方法吗?

4

1 回答 1

1

手册

您可以在一个语句中指定多个表,以DELETE根据WHERE子句中的特定条件从一个或多个表中删除行。

多表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]

对于多表语法,DELETE从每个 tbl_name 中删除满足条件的行。

对于第一个多表语法,仅删除 FROM 子句之前列出的表中的匹配行。对于第二种多表语法,仅删除 FROM 子句(在 USING 子句之前)中列出的表中的匹配行。效果是您可以同时从许多表中删除行,并拥有仅用于搜索的附加表:

DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;

或者:

DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
于 2013-03-08T14:28:50.877 回答