新单位需要分表处理一个大的日志表。
首先,开启event功能。
SET GLOBAL event_scheduler = 1;
然后根据时间自动创建新表,并将视图更改到新表的查询。
-
--模拟日志表
-
create table t1 (id int,log varchar(30));
-
--模拟视图
-
create view v_log as select * from t1;
-
-
delimiter $$
-
CREATE EVENT test_event
-
ON SCHEDULE
-
EVERY 1 second
-
STARTS str_to_date('2014-04-14 20:10:00','%Y-%m-%d %T')
-
COMMENT '根据日期创建一个新的日志表,并将视图修改为对新日志表的查询'
-
DO
-
BEGIN
-
set @cur_date=replace(curtime(),':','_');
-
set @sqltext=concat("create table log_", @cur_date ,"(id int);");
-
PREPARE c_tab_stat from @sqltext;
-
execute c_tab_stat;
-
set @sqltext=concat("create or replace view v_log as select * from log_",@cur_date,";");
-
select @sqltext;
-
PREPARE a_view_stat from @sqltext;
-
execute a_view_stat;
-
END $$
-
delimiter ;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31544252/viewspace-2157079/
,如需转载,请注明出处,否则将追究法律责任。