mysql 通過事件定時為資料庫建立動態表名

來源:互聯網
上載者:User

標籤:資料庫建立動態表名

#檢測事件是否開啟

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 通過事件定時為資料庫建立動態表名

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.