gpt4 book ai didi

sql-server - 使用联接快速删除记录的最有效方法?

转载 作者:搜寻专家 更新时间:2023-10-30 20:29:00 25 4
gpt4 key购买 nike

当查询必须连接到另一个表时,从 SQL Server 数据库中删除记录以进行大型年终清除的最快方法是什么?我知道游标很慢。我做吗

DELETE FROM table1 WHERE table1_id in (SELECT table1_id FROM table2 WHERE whatever)

似乎使用不同的技术连接到查询中的表可能会更快,比如

 DELETE FROM table1 WHERE table1_id = table2

最佳答案

加入将是最好的方式。

我假设您有一个从 table2table1 的外键关联,因此您想要从主表之前的第二个表中删除。

例子:

DELETE T2
FROM table1 T1
JOIN table2 T2 ON -- JOIN CRITERIA HERE
WHERE -- FILTER CRITERIA HERE

DELETE T1
FROM table1 T1
JOIN table2 T2 ON -- JOIN CRITERIA HERE
WHERE -- FILTER CRITERIA HERE

如果您首先尝试从主表中删除,您可能会遇到违反外键约束的情况。

关于sql-server - 使用联接快速删除记录的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16237422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com