欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySql存储过程动态创建表并插入数据_MySQL

程序员文章站 2022-04-09 20:45:53
...
MySql存储过程动态创建表并插入数据

最近做的一个项目,数据库用的是MySql,对于MySql不是很熟练,只是会简单的应用,毕竟简单的sql语句还是相通的,但是随着项目的深入复杂的sql语句开始慢慢多起来,其中一个小难点就是要根据当天的日期动态创建表,并且向其中插入数据。

具体逻辑可以理解为,先去数据库查询有没有当天的记录表,如果没有则创建表,然后执行当天的日志写入。

Mysql的可视化工具我们用的是navicat,相对来说还是比较好用,当然没有sqlserver 那么人性化(很多快捷键不支持,操作累赘)。下面我就来说一说用navicat如何动态创建数据库表并且插入数据。

一:创建存储过程

MySql存储过程动态创建表并插入数据_MySQL

二:用concat函数拼接动态创建表的语句并执行

MySql存储过程动态创建表并插入数据_MySQL

三:同样用concat函数拼接向动态创建的表写入数据的语句并执行

MySql存储过程动态创建表并插入数据_MySQL

因为数据库表都是固定前缀加当前日期的形式,所以无论创建表还是写入数据其实都是根据动态表来的,所以不能向原来那种固定表一样来写简单的insert 语句,另外,传给存储过程的参数id,并不能直接传给存储的insert语句,会报sql语句错误,所以需要引入局部参数,可能并不是最好的办法,但是目前作者还没找到更好的写法,如果大家有什么更好的或者觉得哪里可以改进的希望多多交流。

对于mysql,我们不可忽视其强大,mysql还有很多需要学习的,接下来既然每天都动态生成记录表了,那么肯定需要一个job,来按照一定的时间规律来清除或者备份数据库表,接下来就要研究mysql的job,慢慢来,要学的还很多。