原!mysql5.6 存储过程 批量建表
由于业务需求,需要按天分表,因此写了个存储过程,根据时间生成表。
根据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 存储过程 批量建表的更多相关文章
- Mysql 存储过程批量建表
CREATE DEFINER=`root`@`%` PROCEDURE `createTables`() begin declare i int; declare suffix varchar(20) ...
- Mysql 批量建表存储过程
最近项目中用到了使用存储过程批量建表的功能,记录下来: USE db_test_3; drop procedure if EXISTS `createTablesWithIndex`; create ...
- mysql创建存储过程,批量建表分表00到99
这里以sqlyong为软件示例: --创建存储过程DELIMITER $$ CREATE PROCEDURE `createTablesWithIndex`() BEGIN DECLARE `@i` ...
- sql2000分享 批量建表dev_编号
批量建表dev_3970000000014到dev_3970000000035 declare @i bigint declare @j int ) ) ) ) set @sql = '' set @ ...
- Oracle 存储过程动态建表
动态sql,顾名思义就是动态执行的sql,也就是说在没执行之前是动态的拼接的. 任务 传入参数:新建的表名hd+当前的年和月,例如hd_201105表结构是:字段1:id ,类型是number,可以自 ...
- mysql存储过程批量向表插入数据
业务需要,往某个表中批量插入数据,使用存储过程插入 首先,要建立一张mysql表,表明为phone_number, 三个字段,id 自增,number 就是要插入的表格,is_used 表示十分已经使 ...
- 原!mysql存储过程 批量导入数据
mysql需要导入某前缀例如12345为前缀的,后缀扩展2位 即00-99. 利用存储过程插入数据. DROP PROCEDURE IF EXISTS insert_popsms_code;DELIM ...
- MYSQL 使用存储过程批量更新表数据
功能:实现将表result_good_city_dzl中的字段lat更新为表 result_good_city_lh中的lat,条件是两个表中的id一样 即: update result_good_c ...
- Linq批量建表
public JsonResult CreateTable() { db = new RZBDbContext(); var query = (from c in db.Clients select ...
随机推荐
- git 删除github上的文件
硬盘删除文件后,执行$ git status 会提示你仍然需要$ git rm <文件> 此时如果是要删除大批量文件,这么一个一个命令下去不得累死人啊 其实可以这样(不管之前有 ...
- 0057 Spring MVC如何获取HTTP请求头信息--URL中的动态参数--@RequestHeader--@CookieValue--@PathVariable
获取HTTP请求头信息 一个HTTP请求除了有参数和实体内容外还有HTTP请求头信息,Spring MVC也可以获取这部分信息 @RequestHeader解可以将请求头信息映射到处理方法的形参上 @ ...
- :(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){
- redis数据类型List的安全队列和不安全队列
在学习RPOPLPUSH命令的时候,官方文档中有提到安全队列和不安全的队列,一开始没有看懂,现在理解了做个笔记. 一般情况下,我们可以借助List来实现消息队列,比如一个客户端通过命令LPUSH(BL ...
- c# 根据当前时间获取,本周,本月,本季度,月初,月末,各个时间段(转但是都是使用过)
DateTime dt = DateTime.Now; //当前时间 DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") 24小时制 Dat ...
- Oracle的REGEXP_INSTR函数简单使用方法
REGEXP_INSTR函数让你搜索一个正則表達式模式字符串. 函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示開始或结束匹配的子位置.这取决于return_option參数的值. ...
- 大数据(8) - hive的安装与使用
什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是: ...
- php 怎么查看是否开启了socket
<?php if(extension_loaded('sockets')){ echo "已开启"; }else{ echo "未开启"; } ?>
- 什么是 AJAX ?
什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...
- 解决使用VS2013创建的MVC项目在VS2015中打开的各种问题
其实很多问题一直都存在,但是因为其不影响编译结果和运行结果,所以我也就一直没理它.但是问题放在那一直存在,偶尔想起来还有某些问题没解决的时候心里总是感觉不得劲,所以今天就彻底的查查资料解决了. 问题一 ...