由于业务需求,需要按天分表,因此写了个存储过程,根据时间生成表。

根据createTime 的时间,以及 while循环的变量设置范围,生成该指定日期及之后的多张表。

BEGIN

DECLARE `@i` INT(11);
DECLARE `@createTime` varchar(32); SET `@i` = 0;
set `@createTime` =''; while `@i` < 2 do set @createSql = CONCAT('CREATE TABLE IF NOT EXISTS open_msg_',`@createTime`,
'(`id` int(16) NOT NULL AUTO_INCREMENT,
`msgType` varchar(2) DEFAULT NULL COMMENT \' 消息类型 1:裸短信 2:模板短信\',
`msgSendTime` timestamp NULL DEFAULT NULL COMMENT \'短信下发时间 YYYYMMDDhhmmss\',
`developerAccount` varchar(70) DEFAULT NULL COMMENT \'开发者账号\',
`developerCompany` varchar(70) DEFAULT NULL COMMENT \'开发者公司名称\',
`templetId` varchar(70) DEFAULT NULL COMMENT \'模板id\',
`msgContent` varchar(550) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT \'消息内容\',
`accessNumber` varchar(35) DEFAULT NULL COMMENT \'接入号\',
`userMobile` varchar(16) DEFAULT NULL COMMENT \'用户号码\',
`msgUniqueId` varchar(70) DEFAULT NULL COMMENT \'短信唯一标识\',
`appSideShortName` varchar(40) DEFAULT NULL COMMENT \'应用方简称\',
`createTime` timestamp NULL DEFAULT NULL COMMENT \'入库时间\',
`updateTime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
index msg_index(`msgType`, `developerAccount`,`msgSendTime`,`accessNumber`)
)ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8'
); prepare stmt from @createSql;
execute stmt; SET `@i`= `@i`+1;
set `@createTime` = (select DATE_FORMAT((select ADDDATE(`@createTime`,1)),'%Y%m%d'));
END WHILE;
END

原!mysql5.6 存储过程 批量建表的更多相关文章

  1. Mysql 存储过程批量建表

    CREATE DEFINER=`root`@`%` PROCEDURE `createTables`() begin declare i int; declare suffix varchar(20) ...

  2. Mysql 批量建表存储过程

    最近项目中用到了使用存储过程批量建表的功能,记录下来: USE db_test_3; drop procedure if EXISTS `createTablesWithIndex`; create ...

  3. mysql创建存储过程,批量建表分表00到99

    这里以sqlyong为软件示例: --创建存储过程DELIMITER $$ CREATE PROCEDURE `createTablesWithIndex`() BEGIN DECLARE `@i` ...

  4. sql2000分享 批量建表dev_编号

    批量建表dev_3970000000014到dev_3970000000035 declare @i bigint declare @j int ) ) ) ) set @sql = '' set @ ...

  5. Oracle 存储过程动态建表

    动态sql,顾名思义就是动态执行的sql,也就是说在没执行之前是动态的拼接的. 任务 传入参数:新建的表名hd+当前的年和月,例如hd_201105表结构是:字段1:id ,类型是number,可以自 ...

  6. mysql存储过程批量向表插入数据

    业务需要,往某个表中批量插入数据,使用存储过程插入 首先,要建立一张mysql表,表明为phone_number, 三个字段,id 自增,number 就是要插入的表格,is_used 表示十分已经使 ...

  7. 原!mysql存储过程 批量导入数据

    mysql需要导入某前缀例如12345为前缀的,后缀扩展2位 即00-99. 利用存储过程插入数据. DROP PROCEDURE IF EXISTS insert_popsms_code;DELIM ...

  8. MYSQL 使用存储过程批量更新表数据

    功能:实现将表result_good_city_dzl中的字段lat更新为表 result_good_city_lh中的lat,条件是两个表中的id一样 即: update result_good_c ...

  9. Linq批量建表

    public JsonResult CreateTable() { db = new RZBDbContext(); var query = (from c in db.Clients select ...

随机推荐

  1. git 删除github上的文件

    硬盘删除文件后,执行$ git status   会提示你仍然需要$ git rm <文件>   此时如果是要删除大批量文件,这么一个一个命令下去不得累死人啊   其实可以这样(不管之前有 ...

  2. 0057 Spring MVC如何获取HTTP请求头信息--URL中的动态参数--@RequestHeader--@CookieValue--@PathVariable

    获取HTTP请求头信息 一个HTTP请求除了有参数和实体内容外还有HTTP请求头信息,Spring MVC也可以获取这部分信息 @RequestHeader解可以将请求头信息映射到处理方法的形参上 @ ...

  3. :(23, 7) in class Queen, multiple overloaded alternatives of constructor Queen define default arguments. class Queen private(val name:String,prop:Array[String],private[scala02] val age:Int = 18){

  4. redis数据类型List的安全队列和不安全队列

    在学习RPOPLPUSH命令的时候,官方文档中有提到安全队列和不安全的队列,一开始没有看懂,现在理解了做个笔记. 一般情况下,我们可以借助List来实现消息队列,比如一个客户端通过命令LPUSH(BL ...

  5. c# 根据当前时间获取,本周,本月,本季度,月初,月末,各个时间段(转但是都是使用过)

    DateTime dt = DateTime.Now;  //当前时间 DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") 24小时制 Dat ...

  6. Oracle的REGEXP_INSTR函数简单使用方法

    REGEXP_INSTR函数让你搜索一个正則表達式模式字符串. 函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示開始或结束匹配的子位置.这取决于return_option參数的值. ...

  7. 大数据(8) - hive的安装与使用

    什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是: ...

  8. php 怎么查看是否开启了socket

    <?php if(extension_loaded('sockets')){ echo "已开启"; }else{ echo "未开启"; } ?>

  9. 什么是 AJAX ?

    什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...

  10. 解决使用VS2013创建的MVC项目在VS2015中打开的各种问题

    其实很多问题一直都存在,但是因为其不影响编译结果和运行结果,所以我也就一直没理它.但是问题放在那一直存在,偶尔想起来还有某些问题没解决的时候心里总是感觉不得劲,所以今天就彻底的查查资料解决了. 问题一 ...