为什么 MySQL 旧模式允许而 PostgreSQL 拒绝 SELECT 中未聚合也未分组的列?
为什么 MySQL 旧模式允许而 PostgreSQL 拒绝 SELECT 中未聚合也未分组的列? 本文先给出可直接复述的结论,再用最小代码说明GROUP BY 未分组列 ONLY_FULL_GROUP_BY PostgreSQL 报错的工作方式、判断依据、项目边界和常见误区。
数据库 · 表单面试题第 1 页,显示第 1–10 题,共找到 10 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
为什么 MySQL 旧模式允许而 PostgreSQL 拒绝 SELECT 中未聚合也未分组的列? 本文先给出可直接复述的结论,再用最小代码说明GROUP BY 未分组列 ONLY_FULL_GROUP_BY PostgreSQL 报错的工作方式、判断依据、项目边界和常见误区。
SQL SELECT 的逻辑执行顺序是什么,为什么 SELECT 里起的别名不能在同层 WHERE 用? 本文先给出可直接复述的结论,再用最小代码说明SQL 逻辑执行顺序 FROM WHERE SELECT 别名的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 MVCC 下,同一事务里两次相同的 SELECT 在什么隔离级别下结果可能不同? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL MVCC 隔离级别 不可重复读 快照的工作方式、判断依据、项目边界和常见误区。
集合运算对两侧 SELECT 的列有什么要求,结果列名和数据类型如何确定? 本文先给出可直接复述的结论,再用最小代码说明UNION 列数 类型匹配 结果列名 类型解析的工作方式、判断依据、项目边界和常见误区。
SELECT 里同时有 GROUP BY 和窗口函数时,窗口函数能看到哪些行? 本文先给出可直接复述的结论,再用最小代码说明窗口函数 GROUP BY 执行顺序 聚合后的工作方式、判断依据、项目边界和常见误区。
先 SELECT 判断余额再 UPDATE 扣款为什么在高并发下可能超扣,有哪几种修复方式? 本文先给出可直接复述的结论,再用最小代码说明超卖 超扣 并发 检查再更新 竞态的工作方式、判断依据、项目边界和常见误区。
SELECT FOR UPDATE NOWAIT 与 SKIP LOCKED 在拿不到锁时行为有何不同,各自适合什么场景? 本文先给出可直接复述的结论,再用最小代码说明FOR UPDATE NOWAIT 与 SKIP LOCKED 区别的工作方式、判断依据、项目边界和常见误区。
SELECT FOR UPDATE 与 FOR SHARE 锁住的行分别允许其他事务做什么? 本文先给出可直接复述的结论,再用最小代码说明SELECT FOR UPDATE FOR SHARE 区别的工作方式、判断依据、项目边界和常见误区。
乐观锁与悲观锁在数据库并发控制中的区别是什么,分别适合什么冲突频率的场景? 本文先给出可直接复述的结论,再用最小代码说明乐观锁 悲观锁 区别 适用场景的工作方式、判断依据、项目边界和常见误区。
用 SELECT FOR UPDATE SKIP LOCKED 实现数据库任务队列时如何保证同一任务不被两个 worker 重复领取? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL SKIP LOCKED 任务队列 实现的工作方式、判断依据、项目边界和常见误区。