Mysql Event 自動分表


create table TempComments Like dycomments;

  上述 SQL語句創建的新表帶有原表的所有屬性,主鍵,索引等。

自動分表怎么做呢?

使用上述語句自動創建分表。

那么ID怎么設置呢?

更改表格自增主鍵的起始值 例如 表格為  xxx_201604 那么將起始值設為201604000000000000000

//具體操作

1.創建模板表格,如上述Sql語句

2.設置Mysql 允許執行事件

SET GLOBAL event_scheduler = 1;

3.創建事件,自動分表

CREATE DEFINER=`root`@`%` EVENT `Event_SpliteTable_Comments`
	ON SCHEDULE
		EVERY 1 MINUTE STARTS '2019-06-01'
	ON COMPLETION PRESERVE
	ENABLE
	COMMENT '自動創建下個dycomments_YYYYMM表'
	DO BEGIN
	SET @NextTailStr = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH), '%Y%m');
	
	-- create table TempComments Like dycomments;
	SET @createEventSQL = CONCAT('create table dycomments_'	,CAST(@NextTailStr AS CHAR),' Like TempComments;');
	-- ALTER TABLE person201604211757 AUTO_INCREMENT=201604000000000000000;
	SET @alterEventSql =  CONCAT('ALTER TABLE dycomments_'	,CAST(@NextTailStr AS CHAR),' AUTO_INCREMENT = ',CAST(@NextTailStr AS CHAR),'000000000000000;');
	
	SELECT @createEventSQL;
	PREPARE CreateEventStatement FROM @createEventSQL;
	EXECUTE CreateEventStatement;
	
	SELECT @alterEventSql;
	PREPARE AlterEventStatement FROM @createEventSQL;
	EXECUTE AlterEventStatement;

END

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM