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