mysql 数据库,在存储过程中用变量名作为表名
在实际业务当中,有可能会有每个月末要生成某个表(products)的备份数据,这个时候我们可能每个月都要一个表来备份月末的数据状态,所以会想到生成的表名最好包含有日期信息,比如products202003,
create procedure proc_name() begin DECLARE nowtime char(10); DECLARE table_name char(30); SELECT DATE_FORMAT(NOW(),'%Y%m') into nowtime; select CONCAT('products',nowtime) into table_name; set @sqlStr=CONCAT('CREATE table if not exists ',table_name,' like products'); PREPARE stmt from @sqlStr; EXECUTE stmt; set @insertSql=CONCAT('INSERT INTO ',table_name,' select * from products'); PREPARE stmt2 from @insertSql; EXECUTE stmt2; end
该存储过程会生成一个表名为products再连接上年月的数据表,再从主表数据复制一份数据到当前表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端