標籤:資料庫建立動態表名
#檢測事件是否開啟
show variables like ‘event_scheduler‘;
#開啟事件(最好在my.init設定,因為重啟後還會變回預設值OFF)
set global event_scheduler = on;
#建立事件(從11月24號開始每天執行一次)
create EVENT eve_createTableON SCHEDULE EVERY 1 DAYSTARTS ‘2016-11-24 00:00:00‘ ON COMPLETION PRESERVE ENABLEDOCALL pro_createTable();
註:
1、ON COMPLETION PRESERVE ENABLE 是建立此事件即開始自動執行
2、SCHEDULE EVERY 1 DAY STARTS ‘2016-11-24 00:00:00‘ 從指定時間開始每天執行一次
#建立預存程序(動態表名)
CREATE PROCEDURE pro_createTable()BEGINDECLARE str VARCHAR(20000);set str= CONCAT(‘CREATE TABLE member_network_‘,DATE_FORMAT(now(),‘%Y%m%d‘),‘(`id` bigint(20) NOT NULL AUTO_INCREMENT ,`member_id` bigint(20) NULL DEFAULT NULL ,`host_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`serv_crc` varchar(2000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL ,`app_crc` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`sync_time` timestamp NULL DEFAULT NULL ,`online_time` datetime NULL DEFAULT NULL ,`type` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`up_stream_flux` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`down_stream_flux` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`total_stream_flux` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`line_no` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`url` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,`action` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`sev_port` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`sor_port` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`protocol` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`regionCode` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`memo` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`policy` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`dns` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,`idcard` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`client_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`),INDEX `dept_type` (`regionCode`(255), `serv_crc`(255), `online_time`, `name`, `type`(255)) USING BTREE )ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=1ROW_FORMAT=COMPACT‘);SET @sqlstr=str;PREPARE stmt from @sqlstr;EXECUTE stmt;deallocate prepare stmt;END;
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/8A/9A/wKioL1g1Tb7DT7V5AACT6dr2Z20280.png-wh_500x0-wm_3-wmp_4-s_3708005088.png" title="QQ圖片20161123160456.png" alt="wKioL1g1Tb7DT7V5AACT6dr2Z20280.png-wh_50" />
執行時報錯,因為CONCAT拼接超過最大值;
#sql語句查看該參數,修改並重啟mysql
show VARIABLES like ‘%max_allowed_packet%‘;set global max_allowed_packet = 25600;
mysql 通過事件定時為資料庫建立動態表名