Mysql Event 自动分表

1
create table TempComments Like dycomments;

  上述 SQL语句创建的新表带有原表的所有属性,主键,索引等。

自动分表怎么做呢?

使用上述语句自动创建分表。

那么ID怎么设置呢?

更改表格自增主键的起始值 例如 表格为  xxx_201604 那么将起始值设为201604000000000000000

//具体操作

1.创建模板表格,如上述Sql语句

2.设置Mysql 允许执行事件

1
SET GLOBAL event_scheduler = 1;

3.创建事件,自动分表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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

  

posted @   Vevi-DP  阅读(1577)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?
点击右上角即可分享
微信分享提示