Mysql用事件和存储过程每月创建一张数据库表
2016-12-08 16:14
375 查看
业务需求每个月创建一张以recharge_gain_为前缀,日期年月为后缀的数据库表,比如:recharge_gain_201612
首先创建存储过程:
DELIMITER //
CREATE PROCEDURE create_table_recharge_gain_every_mon()
BEGIN
DECLARE `@suffix` VARCHAR(15);
DECLARE `@sqlstr` VARCHAR(2560);
SET `@suffix` = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH),'%Y_%m');
SET @sqlstr = CONCAT(
"CREATE TABLE recharge_gain_",
`@suffix`,
"(
`id` int(11) NOT NULL AUTO_INCREMENT,
`currency` int(11) NOT NULL,
`date` bigint(20) NOT NULL,
`operation` int(11) NOT NULL,
`server_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"
);
PREPARE stmt FROM @sqlstr;
EXECUTE stmt;
END;
然后创建事件每月28日执行上面的存储过程:
DELIMITER $$
SET GLOBAL event_scheduler = 1;
CREATE EVENT event_create_table_every_month
ON SCHEDULE EVERY 1 MONTH
STARTS '2016-12-28 00:00:00'
ON COMPLETION PRESERVE
ENABLE
DO
BEGIN
CALL create_table_recharge_gain_every_mon();
END
首先创建存储过程:
DELIMITER //
CREATE PROCEDURE create_table_recharge_gain_every_mon()
BEGIN
DECLARE `@suffix` VARCHAR(15);
DECLARE `@sqlstr` VARCHAR(2560);
SET `@suffix` = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH),'%Y_%m');
SET @sqlstr = CONCAT(
"CREATE TABLE recharge_gain_",
`@suffix`,
"(
`id` int(11) NOT NULL AUTO_INCREMENT,
`currency` int(11) NOT NULL,
`date` bigint(20) NOT NULL,
`operation` int(11) NOT NULL,
`server_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"
);
PREPARE stmt FROM @sqlstr;
EXECUTE stmt;
END;
然后创建事件每月28日执行上面的存储过程:
DELIMITER $$
SET GLOBAL event_scheduler = 1;
CREATE EVENT event_create_table_every_month
ON SCHEDULE EVERY 1 MONTH
STARTS '2016-12-28 00:00:00'
ON COMPLETION PRESERVE
ENABLE
DO
BEGIN
CALL create_table_recharge_gain_every_mon();
END
相关文章推荐
- MySql 定时任务和存储过程,每月创建一张表
- navicat创建mysql 数据库存储过程
- mysql 查看数据库中的存储过程,表,函数,以及创建的源码
- 数据库_MySQL_简单的存储过程 创建_调用_查找
- mysql创建视图,存储过程,事件
- mysql 通过事件定时为数据库创建动态表名
- MYSQL的基本使用【表的创建和修改、视图、函数、存储过程、触发器和事件调度器】
- 数据库:第一篇-Mysql创建一张标准的表(加入sql脚本)
- MYSQL的基本使用【表的创建和修改、视图、函数、存储过程、触发器和事件调度器】
- Mysql之存储过程,动态创建表和数据库-,动态删除-yellowcong
- mysql 创建事件、存储过程
- MySQL for Linux on POWER,第 1 2 部分: 数据库创建简介
- Visual C# 2008+SQL Server 2005 数据库与网络开发--13.1.2 菜单事件创建
- 用MySQL创建数据库和数据库表代码
- linux下mysql的最常用的操作指令_创建用户、备份和还原数据库
- Oracle 9i 数据库 创建数据库 Net 配置 创建表 SQL查询 创建存储过程 (图)
- MYSQL创建、删除和选择数据库
- MySQL创建维护数据库和表
- mysql导出数据库表的创建sql语句(使用mysql control center/MYSQL-Front)
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)