谁更好?删除或选择并删除(如果存在)。
DELETE FROM users WHERE id = 1;
OR
SELECT id FROM users WHERE id = 1;
// IF ROW COUNT == 1
DELETE FROM users WHERE id = 1;
感谢。
答案 0 :(得分:2)
不需要先检查SELECT是否存在行,这是WHERE子句在DELETE上的作用。如果您打算删除所有行,TRUNCATE通常比DELETE更有效,但是您将无法回滚操作,因为绕过了保存到撤消空间。
答案 1 :(得分:2)
如果您只想删除一行,则可以使用limit
:
DELETE FROM users
WHERE id = 1
LIMIT 1;
但是,id
可能在表格中是唯一的。没有LIMIT
的查询将删除所有匹配的行。如果没有,则不删除任何行 - 没有错误。