【Mysql】用儲存過程來實現從指定日期到指定日期的批量建表吧~
阿新 • • 發佈:2018-12-21
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`;