如何临时禁用 SQL 触发器进行数据修复

临时关闭触发器做数据修复,风险往往不在语法本身,而在误关对象、会话范围和修复后的验证。本文按 SQL Server、MySQL、PostgreSQL 三类场景梳理可执行写法、限制条件与恢复检查点,帮助你判断哪些做法能在生产环境真正落地。

如何临时禁用 SQL 触发器进行数据修复

MyBatis-Plus 查询结果全是 null,但条数正确:原因与排查办法

MyBatis-Plus 查询结果“条数正确但每项都是 null”,通常不是 SQL 没查到,而是结果映射阶段出了问题。最常见的原因是下划线字段与默认驼峰映射冲突,其次还要检查 Bean 的 setter、Lombok 生效情况,以及是否需要关闭 `map-underscore-to-camel-case`。

MyBatis-Plus 查询结果全是 null,但条数正确:原因与排查办法

如何使用 SQL COALESCE 函数设置 NULL 默认值

COALESCE 是处理 NULL 的常用函数,但真正写进生产 SQL 时,兼容性、类型推导和索引命中往往比语法本身更关键。本文从跨库支持、类型陷阱、WHERE/JOIN 性能影响到 CASE 的替代场景,整理一套更稳妥的使用方法。

如何使用 SQL COALESCE 函数设置 NULL 默认值

Oracle 19c 如何使用 SQL 复合触发器避开 ORA-04091

在 Oracle 19c 里,行级触发器一旦直接查询或修改当前触发表,通常就会撞上 ORA-04091。解决思路不是绕事务,而是改用 COMPOUND TRIGGER,把数据收集和表访问拆到不同阶段,尤其把真正的查询、更新和汇总后移到 AFTER STATEMENT。

Oracle 19c 如何使用 SQL 复合触发器避开 ORA-04091

CentOS 中如何设置 Python 数据库连接:以 MySQL 为例

这篇文章用 MySQL 为例,梳理了在 CentOS 中让 Python 成功连上数据库的基础流程:安装服务、创建专用库和用户、安装驱动、编写测试脚本并排查常见报错。适合本地开发或测试环境快速搭建。 在 CentOS 上配置 Python 连接数据库,真正容易卡住的往往不是代码本身,而是服务状态、账号权限和连接参数没有对齐。

CentOS 中如何设置 Python 数据库连接:以 MySQL 为例

SQL 用 ROW_NUMBER() 分页为什么会重复数据?

`ROW_NUMBER()` 分页出现跨页重复,通常不是语法问题,而是排序键不唯一、过滤层级不对或索引与参数设计失配。本文按“为什么会重复、SQL 该怎么写、索引和参数如何收口”三步拆开,帮助你同时排查结果稳定性和深分页性能。

SQL 用 ROW_NUMBER() 分页为什么会重复数据?

SQL 中 GROUP BY 查询很慢,应该如何排查

GROUP BY 查询变慢,常见根因不是数据量大,而是执行计划没走上正确的索引路径。排查时先看 EXPLAIN 的 Extra 列,再结合联合索引顺序、覆盖情况、类型转换和 DISTINCT 替代场景逐项定位。 遇到 GROUP BY 查询变慢时,很多优化都停留在“补个索引试试”这一层,结果往往不稳定。

SQL 中 GROUP BY 查询很慢,应该如何排查

SQL 触发器为什么无法直接更新复杂视图

复杂视图之所以不能像表一样直接更新,核心不在语法,而在数据库是否愿意替你拆解 DML。SQL Server 允许借助 INSTEAD OF 触发器接管写入,但所有分发表、字段映射和校验都要手写;MySQL 则直接禁止在视图上创建触发器。

SQL 触发器为什么无法直接更新复杂视图

SQL 中如何按日期分组并补齐缺失日期?

按日期分组后出现“断档”,通常不是 GROUP BY 写错,而是结果集里本来就没有那些日期。本文分别整理 PostgreSQL 的 `generate_series`、MySQL/SQL Server/Oracle 的日历表方案,并说明周/月分组、性能和边界数据里最容易踩的坑。 按日期统计时,结果里少几天、少几周,很多时候并不是 `GROUP BY` 写错了,而是数据源里根本没有这些日期。

SQL 中如何按日期分组并补齐缺失日期?

如何避免 SQL 触发器造成循环更新

SQL 触发器一旦回写自身监听的表,三大数据库的表现并不一样:MySQL 直接报 `ERROR 1442`,SQL Server 可能静默递归,PostgreSQL 则默认允许但需要手动拦截。本文按数据库拆解限制、可行写法和容易踩坑的上下文污染问题。

如何避免 SQL 触发器造成循环更新