MySQL event实现定时建表小记

WBOY
풀어 주다: 2016-06-07 14:59:20
원래의
991명이 탐색했습니다.

MySQL event实现定时建表小记 每天凌晨一点建一个第二天的表DELIMITER // CREATE PROCEDURE test.create_tab_every_day() BEGIN

MySQL event实现定时建表小记

每天凌晨一点建一个第二天的表
DELIMITER //
 CREATE PROCEDURE test.create_tab_every_day()
 BEGIN
 DECLARE `@i` VARCHAR(15);
 DECLARE `@sqlstr` VARCHAR(2560);
 SET `@i` = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 DAY),'%Y_%m_%d');
 SET @sqlstr = CONCAT(
 "CREATE TABLE day_tab_",
 `@i`,
 "(
  `prop` VARCHAR(40)
 );"
 );
 PREPARE stmt FROM @sqlstr;
 EXECUTE stmt;
 END;

 CALL test.create_tab_every_day();
 /*****DROP PROCEDURE test.create_tab_every_day;*****/
 /*****drop table test.day_tab_2015_09_11;*****/

 DELIMITER $$
 CREATE EVENT event_create_tab_days
 ON SCHEDULE EVERY 1 DAY
 STARTS '2015-09-10 01:00:00'
 ON  COMPLETION  PRESERVE
 ENABLE
 DO
 BEGIN
 CALL test.create_tab_every_day();
 END
 $$
 DELIMITER ;


每月的11号建一张下个月的表

DELIMITER //
 CREATE PROCEDURE test.create_tab_every_mon()
 BEGIN
 DECLARE `@i` VARCHAR(15);
 DECLARE `@sqlstr` VARCHAR(2560);
 SET `@i` = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH),'%Y_%m');
 SET @sqlstr = CONCAT(
 "CREATE TABLE mon_tab_",
 `@i`,
 "(
  `prop` VARCHAR(40)
 );"
 );
 PREPARE stmt FROM @sqlstr;
 EXECUTE stmt;
 END;


 CALL test.create_tab_every_mon();
 /*****DROP PROCEDURE test.create_tab_every_mon;*****/
 /*****DROP TABLE test.mon_tab_2015_10*****/


 DELIMITER $$
 CREATE EVENT event_create_tab_mons
 ON SCHEDULE EVERY 1 MONTH
 STARTS '2015-09-11 01:00:00'
 ON  COMPLETION  PRESERVE
 ENABLE
 DO
 BEGIN
 CALL test.create_tab_every_mon();
 END
 $$
 DELIMITER ;

本文永久更新链接地址

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿