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

  

转载于:https://www.cnblogs.com/veviDP/p/11005127.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值