最近根据需求,需要提前创建一批日志表,以日期结尾,每天创建一张,例如XXX20160530,请参考如下:

BEGIN  
 
DECLARE `sName` VARCHAR(128);   
DECLARE `sqlVar` VARCHAR(1024);  
DECLARE `rest` INT;  
 
set rest = 1;

while rest > 0 do  
    
 set sTime = (select DATE_FORMAT((select ADDDATE(sTime,1)),'%Y%m%d'));  
 set sName = CONCAT('XXX',sTime);  
 
 select count(1) from information_schema.tables where table_name = sName and TABLE_SCHEMA=tchema into @cnt;  
 if @cnt = 0 then    
 
        set sqlVar=CONCAT(" create table ",sName,  
                    "(code varchar(255),
        userCode varchar(255) COMMENT 'XXX',
        roleCode varchar(20) COMMENT 'XXX',
        createTime varchar(100) COMMENT '创建时间',
        url varchar(255) COMMENT '接口名称url',
        parameter1 varchar(255) COMMENT '保留字段1,暂时做版本字段',
        parameter2 varchar(255) COMMENT '保留字段2',
        parameter3 varchar(255) COMMENT '保留字段3',
        parameter4 varchar(255) COMMENT '保留字段4',
        kindergartenCode varchar(255) COMMENT 'XXX',
        sum int(11) COMMENT '访问次数',
    shardingName varchar(255) COMMENT 'XXX'
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='XXX'");  
 
        set @v_s=sqlVar;  
        prepare stmt from @v_s;  
        EXECUTE stmt;  
        DEALLOCATE PREPARE stmt;  
END if;  
 
 set rest = DATEDIFF(eTime,sTime);  
 
END while;  
 
END

运行参数:'20160529','20170530','hadoop'    分别对应:sTime,eTime,tchema

mysql 批量创建表,利用存储过程的更多相关文章

  1. MYSQL批量创建表的存储过程

    因为业务需要,创建了100个表,但是这些表的结构都是一样的,作为程序员,就是要解决这种重复劳动.然而这种事情还要单独写个php脚本的话太麻烦了吧,所以就干脆学了一下直接用Mysql存储过程怎么实现: ...

  2. mysql 批量创建表

    使用存储过程 BEGIN    DECLARE `@i` int(11);    DECLARE `@sqlstr` varchar(2560); SET `@i`=0; WHILE `@i` < ...

  3. 利用sql批量删除表,存储过程

    利用sql批量删除表,存储过程. 最近用godaddy的空间,由于系统里面的表多,一个个的删除很麻烦,就网上搜集了一下解决方法. 给大家分享一下: 1.批量删除存储过程 declare @procNa ...

  4. MYSQL定时创建表分区

    MYSQL定时创建表分区 一.存储过程-表分区-----------------------------------------------------------------需求: 每月创建一个分区 ...

  5. 在SSMS里批量删除表、存储过程等各种对象

    在SSMS里批量删除表.存储过程等各种对象 以前想找批量删除表或者存储过程的方法,原来SSMS的GUI界面也可以完成 请看下图,因为这次出差的时候要删除所有的存储过程,然后重建这些存储过程 而表.函数 ...

  6. mysql 在创建表或者插入时遇到关键字报错

    mysql 在创建表或者插入时遇到关键字:比如name,status等.都不报错 解决方法:在字段上加上` 上面这个符号是键盘ecs下面那个符号

  7. MySql数据库创建表

    3.3.MySql数据库创建表 创建5个表: UserInfo用户基础表 Role 角色表 MenuInfo 菜单即控制表 Relation_Role_Menu 角色对应菜单关系表 RelaTion_ ...

  8. Mysql 批量建表存储过程

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

  9. Qt编译mysql以及创建表后进行导入操作

    鉴于很多同学对Qt编译myql总是不能成功.出现各种问题,今天特此写出本教程,希望可以帮到须要的同学.        首先,须要明确编译的目的和原理. 目的:Qt 5.2版本号曾经都是不带mysql驱 ...

随机推荐

  1. IOC Container(服务容器)的工作机制

    IOC Container 是laravel的一个核心内容,有了IOC Container在Laravel的强大表现,我们可以在Laravel中实现很大程度的代码维护性.(文档我是看的懵逼懵逼的(*^ ...

  2. 【CITE】利用鼠标绘图C#

    实例018 利用鼠标绘图 光盘位置:光盘\MR\01\018 在常用的画图软件中,用户一般都可以通过鼠标在其中绘图,那么该功能是如何实现的呢?本实例将讲解如何使用C#实现通过拖动鼠标在窗体上绘图的功能 ...

  3. robotframework笔记20

    配置执行 选择测试用例 机器人框架提供了几个选择的命令行选项 执行测试用例. 也工作在相同的选项 后处理输出与 Rebot . 通过测试套件和测试用例的名称 测试套件和测试用例可以选择通过他们的名字的 ...

  4. hdu 3853LOOPS (概率DP)

    LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Total Su ...

  5. 20145236 冯佳 《Java程序设计》第3周学习总结

    20145236 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 一.面向对象和面向过程 •面向对象是相对面向过程而言 •面向对象和面向过程都是一种思想 •面向过程 ...

  6. jquery 行交换 上移 下移

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Word文档增加快捷键

  8. ASP.NET MVC的Ajax.ActionLink 的HttpMethod="Get" 一个重复请求的BUG

    这段时间使用BootStrap+Asp.net Mvc5开发项目,Ajax.ActionLink遇到一个重复提交的BUG,代码如下: @model IList<WFModel.WF_Temp&g ...

  9. [示例]创建Student类,输入学生信息并存入字典,将3个存有学生信息的字典存入数组,并计算

    代码: main: #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, c ...

  10. 创建缓存文件(。php)

    public function user_dengji(){        $this->sdb->select('groupid,grouptitle');        $query ...