我试图同时从两个不同的表中删除行。表格看起来像这样:
TABLE - Value
-----------
ID
Field
<some other stuff...>
TABLE - Srch
-----------
Value_ID
Srch_ID
<some other stuff...>
我正在尝试从 VALUE
中删除所有行,其中 field
等于“SUCCESS”,并且还从 SRCH
中删除行通过 value_id
链接到 VALUE
。在 SRCH
中,可以有多个具有相同 value_id
的行。
这条 SQL 语句会是什么样子?
请您参考如下方法:
我建议在您的 2 个表和 ON DELETE CASCADE
之间使用外键。因此,您只需删除 Value 中的行,Srch 中的所有相应行将被删除。
您可以将以下约束添加到您的数据库中:
ALTER TABLE Srch ADD CONSTRAINT
FK_Value_ID FOREIGN KEY(Value_ID)
REFERENCES Value (ID)
ON DELETE CASCADE;
需要说明的是(引用自 xQbert 评论):“级联将始终发生”当删除 Value 中的 ID 时。