MySQL存储过程与触发器:参数传递、级联删除与数据校验实战
本文详细讲解MySQL中存储过程与触发器的核心操作。涵盖无参、IN输入参数、OUT输出参数的存储过程定义与调用方法,以及利用BEFORE DELETE实现成绩表级联删除的触发器逻辑,同时演示如何通过BEFORE INSERT触发器配合SIGNAL语句拦截非法成绩录入,确保数据库数据完整性。
本文详细讲解MySQL中存储过程与触发器的核心操作。涵盖无参、IN输入参数、OUT输出参数的存储过程定义与调用方法,以及利用BEFORE DELETE实现成绩表级联删除的触发器逻辑,同时演示如何通过BEFORE INSERT触发器配合SIGNAL语句拦截非法成绩录入,确保数据库数据完整性。
本文介绍在 MySQL 中获取当前时间的核心函数 NOW() 与 SYSDATE(),以及将时间转为字符串的 DATE_FORMAT 方法和将字符串转为日期的 STR_TO_DATE 函数。详细列出格式化参数如 %Y-%m-%d,涵盖操作代码、注意事项及使用示例,帮助开发者高效处理数据库日期类型转换。
本文总结了在 MyBatis-Plus 中强制更新数据库字段为 null 的四种方法。默认情况下 MP 会忽略 null 值,建议优先使用自定义 SQL 或 UpdateWrapper.set() 方法以保证数据安全;若使用 @TableField 注解或全局配置忽略策略,需谨慎处理以避免数据丢失风险。
详细解析 MySQL 的 mysql.sock 文件及其在 Unix 平台进程间通信中的作用。当遇到本地连接失败报错 ERROR 2002 (HY000) 时,提供包括重启服务、修改配置文件以及调整 PHP/后端 socket 路径等多种排查与修复方案,确保数据库恢复稳定连接。
本文详细解析MySQL存储过程的创建、调用与管理,涵盖定义分隔符的关键配置。深入讲解局部变量声明赋值、IF条件分支、CASE多分支及WHILE/REPEAT/LOOP等循环控制语句的语法与应用场景,附带完整代码示例,帮助开发者高效实现数据库端的复杂逻辑处理。
本文深入解析 MySQL EXPLAIN 命令的核心字段。通过 type 字段(从全表扫描到 const)判断访问效率,利用 key 识别实际使用的索引,并结合 extra 中的 Using index、Using filesort 等状态码定位慢查询根因。掌握这些指标可精准调整 SQL 语句,提升数据库执行效率。
在使用 Mybatis-Plus 进行数据更新时,若实体字段值为 null,默认策略下数据库不会变更该字段。本文详解通过配置全局 field-strategy 或在实体类字段上使用 @TableField(strategy = FieldStrategy.IGNORED) 注解,强制更新 null 值,解决前端清空字段后后端无法同步的问题。

本文介绍如何仅凭借 .frm 文件恢复 MySQL 数据表的定义结构。针对 InnoDB 引擎,通过在同名数据库重建空表并覆盖 .frm 文件实现;针对 MyISAM 引擎,则需建立 .MYI/.MYD 占位文件后执行 REPAIR TABLE ... USE_FRM 命令。该方法适用于备份丢失但保留基础文件时的紧急恢复场景。
在生产环境中遇到数据重复(如标签重复)时,可利用MySQL的GROUP BY和HAVING语句快速定位问题。本文通过实际案例,演示如何编写SQL查询提取重复记录,结合临时表进行数量统计与频次占比分析,并详细解析WHERE与HAVING的区别,帮助开发者高效排查数据库异常。

MySQL 游标是存储过程和函数中用于逐行遍历结果集的数据库对象。掌握其生命周期包含四个步骤:DECLARE 声明查询语句、OPEN 打开结果集、FETCH 读取数据至变量、CLOSE 释放资源。本文提供完整的语法说明及累加薪资的存储过程实战案例,解析性能注意事项。

本文详细解析MySQL索引的工作原理,特别是B+树如何通过减少磁盘IO次数提升查询性能。介绍主键、唯一和联合索引的分类与应用,演示最左前缀匹配法则及覆盖索引的使用。最后总结慢查询优化的六个基本步骤,帮助开发者掌握数据库调优的核心技巧。

本文详细介绍MyBatis中使用LIKE进行模糊查询的正确姿势。重点解析如何结合数据库函数CONCAT实现参数拼接,避免在XML中直接使用%#{name}%导致的SQL注入风险或语法错误。提供MySQL与Oracle下的具体代码示例及最佳实践,帮助开发者写出更安全、规范的SQL语句。