阅界食谱今天吃什么,先来这里看看
代码片段

SQL 更新与删除(防手滑)

改数据前先 SELECT 一遍,改完再确认。

模板正文

-- 第 1 步:先 SELECT 出要改的行,确认数量
SELECT COUNT(*) FROM users WHERE status = 'pending' AND created_at < '2026-01-01';

-- 第 2 步:把同样的 WHERE 写进 UPDATE
UPDATE users
SET status = 'expired', updated_at = NOW()
WHERE status = 'pending' AND created_at < '2026-01-01';

-- 第 3 步:确认影响行数符合预期,再提交事务
-- (生产库建议先 BEGIN; ... 检查后 COMMIT;)

-- 删除同理
DELETE FROM sessions WHERE expires_at < NOW() LIMIT 1000;

怎么用

任何 UPDATE/DELETE 都按这个流程走。

使用要点

  • UPDATE/DELETE 没写 WHERE 就是全表操作,写之前先想三秒。
  • 生产环境先开事务,确认行数对了再 COMMIT。

同类模板

SQL 更新与删除(防手滑) · 阅界食谱