示例
示例
UPDATE orders
SET status = 'paid', paid_at = NOW()
WHERE id = 100 AND status = 'pending';| SET 多列 | 逗号分隔;右侧表达式可引用当前行的旧值 |
|---|---|
| WHERE | 控制影响范围;上线变更前先用同条件 SELECT 预估行数 |
| 护栏 | MySQL 可开 sql_safe_updates;PostgreSQL 可依赖事务 + 先查后改流程 |
UPDATE 不带 WHERE 会更新全表:执行前把 WHERE 子句先跑一遍 SELECT COUNT(*),再包进事务确认。