天天看點

mysql按時間分表_mysql按時間日期拆分表

1、用存儲過程和綁定事件的方式來做

(1)、建立存儲過程:

CREATE PROCEDURE ctrlcctrlv_table(var VARCHAR(20))

BEGIN

SET @param1 = concat('ALTER TABLE ', var, ' RENAME ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));

PREPARE stmt FROM @param1;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

SET @param2 = concat('CREATE table ', var, ' like ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));

PREPARE stmt1 FROM @param2;

EXECUTE stmt1;

DEALLOCATE PREPARE stmt1;

END;

(2)、建立事件 下面例子是隔一天拆表

create event ctrlcctrlv_event

on schedule every 1 DAY STARTS '2020-09-10 00:00:00'

on completion preserve disable

do call ctrlcctrlv_table("user");

(3)、啟動事件生效

alter event ctrlcctrlv_event on completion preserve enable;