DROP PROCEDURE IF EXISTS `copyTableByDate`;
CREATE DEFINER=`root`@`localhost` PROCEDURE `copyTableByDate`(
IN `table_` varchar(64),
IN `format_` varchar(32),
IN `begin_` date,
IN `end_` date)
BEGIN
DECLARE currentDate date DEFAULT NOW();
DECLARE endDate date DEFAULT NOW();
DECLARE suffix_ VARCHAR(32);
DECLARE tableName VARCHAR(128) DEFAULT "defaultTableName_";
SET currentDate = DATE_FORMAT(begin_,'%Y%m%d');
SET endDate = DATE_FORMAT(end_,'%Y%m%d');
WHILE currentDate < endDate DO
SET suffix_ = DATE_FORMAT(currentDate, format_);
SET tableName = CONCAT(table_,suffix_);
SET @stmtSql = CONCAT("CREATE TABLE IF NOT EXISTS ",tableName,"(LIKE ",table_,");");
PREPARE stmt FROM @stmtSql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET currentDate = DATE_ADD(currentDate,INTERVAL 1 DAY);
END WHILE;
END;
#copyTableByDate(複製的表的名字,複製的新表後綴格式,起始日期,結束日期)
CALL copyTableByDate('StatResouce','_%Y%m%d',20121101,20121103);
#用完刪除
DROP PROCEDURE IF EXISTS `copyTableByDate`;