我有这个查询,它返回需要删除的项目。查询应该删除这些项目。
SELECT p1.ID
FROM pidata_load p1
WHERE NOT EXISTS (SELECT p2.ID FROM pi_base p2 WHERE p1.pbid = p2.ID)
这样做是否安全?
DELETE FROM pidata_load
WHERE NOT EXISTS (SELECT p2.ID FROM pi_base p2 WHERE pbid = p2.ID)
GO
更新1 - 这是我在外表上使用别名的查询
DELETE p1 FROM pidata_load AS p1 WHERE NOT EXISTS (SELECT p2.ID FROM pi_base p2 WHERE p1.pbid = p2.ID)
GO
答案 0 :(得分:2)
是的,这将有效。 DELETE语句与SELECT语句非常相似,但它会删除结果。
答案 1 :(得分:0)
是的,.input__field--hoshi {
margin-top: 5em;
padding: 0.85em 0.15em;
width: 100%;
background: transparent;
color: #595F6E;
}
在删除语句的EXISTS
子句中有效。
您也可以使用WHERE
来检查ID。很确定这比<{1}} 效率低。在我看来,它有点更容易阅读,但再次知道它效率低。
IN
答案 2 :(得分:0)
是的,definitely it safe
使用delete语句而不是select。
在执行之前使用select测试delete语句是good practice
。