IT序号网

sql之从两个表中删除行

luoye11 2024年10月25日 编程语言 15 0

我试图同时从两个不同的表中删除行。表格看起来像这样:

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 时。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!