[MySQL] 用一句SQL解决查询出最大值+1,并insert数据的问题
场景
数据的code需要有规律的动态生成,数据是有父子结构的。如果父节点数据是 003,子节点就是003001这样,再增加就是003002;
防止生成新的code时,有并发请求。因此需要包含在一个事务里。
解决方法
insert
person.department (id, code) (
select uuid(), lpad(max(code) + 1, 9, 0)
from 表名
where code like '002001%' and length(code) = 9)
备注
-
9 和 查询的参数自行替换生成即可
-
lpad 用于字符串左边补0,第2个参数表示总长度,第3个参数表示用什么数字补;
-
rpad 用于右边补
附记:在茫茫的信息海洋中,遇到就是有缘,期待回复交流,为缘分留下痕迹……
分类:
程序人生
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下