需求:mysql5.5 数据库,想要根据月份自动创建表,每个月创建一张表,需要数据库自动创建,并根据当前年和月动态生成表名称。

解决办法:1 连接数据库工具为Navicat

      2  首先创建存储过程,然后通过创建定时事件执行存储过程。

3  先查看事件是否开启          show variables like '%scheduler%';

     4  如果未开启则需要开启       set global event_scheduler = 1;

 

创建存储过程:

  点击查询--》新建查询--> 输入以下代码,然后在函数中就可以查看到建立的存储过程。

2   我这里利用循环一次建立了12张表,以年和月开头为表明。

3     PARTITION BY HASH(GTID)        PARTITIONS 100   利用哈希表的形式把每个表分为100个区,提高检索效率

BEGIN
declare i int;
set i=;
while i< do
set @sql_create_table_gpstrail = concat(
'CREATE TABLE IF NOT EXISTS xj_dt_gpstrail', date_format(date_add(curdate(), interval i month),'%Y%m'),
"(
`GTID` int() NOT NULL AUTO_INCREMENT,
`DeviceId` varchar() DEFAULT NULL COMMENT '设备ID',
`Longitude` decimal(,) DEFAULT NULL COMMENT '经度',
`Latitude` decimal(,) DEFAULT NULL COMMENT '纬度',
`Speed` int() DEFAULT NULL COMMENT '速度',
`LocationTime` datetime DEFAULT NULL COMMENT '定位时间',
`ReciveTime` datetime DEFAULT NULL COMMENT '接收时间',
`loginid` int() DEFAULT NULL COMMENT '登陆人账号',
`BdLon` decimal(,) DEFAULT NULL COMMENT '百度经度',
`BdLat` decimal(,) DEFAULT NULL COMMENT '百度纬度',
PRIMARY KEY (`GTID`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8 COMMENT='GPS轨迹'
PARTITION BY HASH(GTID)
PARTITIONS
"); PREPARE sql_create_table_gpstrail FROM @sql_create_table_gpstrail;
EXECUTE sql_create_table_gpstrail;
set i=i+;
end while;
END

创建执行存储过程的事件:

1   打开创建的数据库,点击事件按钮,点击新建事件。

  2  在 定义 栏里面输入 CALL sql_create_table_gpstrail(),下面的状态选择ENABLE

3   在计划栏里面配置如图:表示每一年执行一次,开始时间是 2017-02-01 01:00:00

4  保存计划就建立完毕,效果如图:建立了12张gpstrail表 根据年和月份。

创建事件也可不按照上面操作,执行sql语句即可:查询中--》新建查询--》执行

CREATE  EVENT EVENT_pro_sql_create_table_gpstrail
ON SCHEDULE EVERY QUARTER STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())- DAY), INTERVAL MONTH),INTERVAL HOUR)
ON COMPLETION PRESERVE ENABLE DO
CALL sql_create_table_gpstrail(); ;

mysql 按照月份自动创建表,以年和月为表明,动态生成。的更多相关文章

  1. Hibernate连接mysql数据库并自动创建表

    天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个 ...

  2. 支持MySql的数据库自动分表工具DBShardTools发布

    支持MySql的数据库自动分表工具DBShardTools发布 前段时间参与了公司的一个项目,这个项目的特点是数据量.访问量都比较大,考虑使用数据库水平分表策略,Google了大半天,竟然没有找到分表 ...

  3. Hibernate 自动创建表bug问题解决

    我在hibernate.cfg.xml配置文件中添加了自动创建表的的属性:(这样当数据库中没有此表是,hibernate就会自动帮我们创建一张表) <property name="hb ...

  4. Hibernate自动创建表

    只要在hibernate.cfg.xml添加这句话,就可以自动生成数据表 <property name="hibernate.hbm2ddl.auto">update& ...

  5. Hibernate根据实体类自动创建表

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码 Xml代码<propert ...

  6. hibernate自动创建表报表不存在

    在hibernate.cfg.xml配置了<property name="hibernate.hbm2ddl.auto">update</property> ...

  7. sql自动创建表并复制数据

    ---------------自动创建表并复制数据sql,需要自己设置主键----------- select * into 新表 from 旧表

  8. SQL Server ->> 自动创建表并从文件加载数据

    这个存储过程自动创建表并从文件加载数据. 有一点需要说明的是Excel 12.0驱动是兼容了Excel 97-2003和Excel 2007两者格式的Excel文件. CREATE PROCEDURE ...

  9. Hibrenate实现根据实体类自动创建表或添加字段

    Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步. 实现: 在配置hibernate的配置文件中将hbm2ddl.auto设置为update,如:Xml代码&l ...

随机推荐

  1. XML相关的安全漏洞-XXE,XPATH小结

    0x00前言: 本文主要小结以下php下的xpath查询xml结构的漏洞利用和XXE漏洞利用 xml是可扩展标记语言,它被设计出来是为了存储传输数据的. 它的结构是树形结构,并且标签要成对出现比如下面 ...

  2. Django之模板2

    模板2 一 . 母版 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  3. 伪类实现特殊图形,一个span加三角形

    题目如图: 实现思路: 伪类+三边透明的三角形实现 代码: <span class="wei">wei</span> .wei{ display: inli ...

  4. 2017-9-8-Linux下VNC server开启&图形界面显示

    之前有一个写树莓派3B怎么只使用网线VNC远程的blog,里面写的比较粗糙(其实是很长时间没搞我也忘了怎么装的了,照着原来的看一遍应该能想起来),所以重新来在新的环境下搭建一下VNC server. ...

  5. [HNOI2010]平面图判定

    Description: 若能将无向图 \(G=(V, E)\) 画在平面上使得任意两条无重合顶点的边不相交,则称 \(G\) 是平面图.判定一个图是否为平面图的问题是图论中的一个重要问题.现在假设你 ...

  6. ArrayList数据结构的实现

    import java.util.Iterator; import java.util.NoSuchElementException; public class MyArrayList<T> ...

  7. CSharp遗传算法求解背包问题

    断断续续写了四天,感觉背包问题是最适合了解遗传算法的问题模型 using System; using System.Collections.Generic; using System.Linq; us ...

  8. 自己遇到过的出现java.lang.StackOverflowError的原因

    public static JSONArray geth24Weather(String result) {//获取当天24小时以及第二天的天气结果对象        JSONObject fromO ...

  9. idea快捷键列表

    Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 C ...

  10. Html表格:

    (1)<table>标签:声明一个表格,它的常用属性如下: -- border属性 定义表格的边框,设置值是数值 -- cellpadding属性 定义单元格内容与边框的距离,设置值是数值 ...