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