mysql 按月自動建表

2021-10-03 12:29:03 字數 1564 閱讀 4183

開啟事件

a.查詢事件是否開啟   show variables like '%scheduler%'; 

b.設定開啟事件         set global event_scheduler = on;

drop procedure if exists  pro_create_log_detail; 

create procedure pro_create_log_detail()

begin

declare i int;

set i=0;

while i<12 do

set @sql_create_table_log_detail = concat('create table t_ucp_log_detail_',date_format(date_add(curdate(), interval i month),'%y%m'),'(

`id` varchar(40) not null,

`lg_id` varchar(40) not null comment "日誌id",

`column_id` varchar(40) default null comment "欄位id",

`column_name` varchar(40) default null comment "欄位名稱",

`before_value` varchar(1000) default null comment "修改前的值",

`after_value` varchar(1000) default null comment "修改後的值",

`op_cntt` varchar(1000) default null comment "操作內容",

`cmos_modify_time` datetime default null comment "操作時間",

primary key (`id`)

)engine=innodb default charset=utf8

');prepare sql_create_log_detail from @sql_create_table_log_detail;

execute sql_create_log_detail;

deallocate prepare sql_create_log_detail;

set i=i+1;

end while;

end;

一次性建立12張月表

執行呼叫

drop event if exists eve_create_log_detail;

create event eve_create_log_detail

on schedule every 1 year

starts '2020-03-04 20:12:00' on completion preserve enable

docall pro_create_log_detail();

建立事件以及執行時間,一年一次(開始時間可以自定義)。

測試結果

測試結果。

mysql按月歸檔日誌表

由於日誌表越來越大,資料將近1億,查資料非常慢,因此使用事件每月28日呼叫儲存過程自動建立歸檔表,將上月資料按照create time欄位和id欄位插入歸檔表並刪除原表相應資料。delimiter create definer root localhost procedure clear log b...

mysql建表自動填寫當日時間

列型別 顯示格式 timestamp 14 yyyymmddhhmmss timestamp 12 yymmddhhmmss timestamp 10 yymmddhhmm timestamp 8 yyyymmdd timestamp 6 yymmdd timestamp 4 yymm timest...

mysql建立使用者表 mysql 建庫建表建使用者

1.建立資料庫 create database school 2.使用資料庫 use school 3.建立使用者 create user jame localhost identified by jame 4.授權使用者 注意這裡是用了 哦,可以自己講school也替換成 號 grant sele...