最近有个需求,由于日志表很大,要求日志表按月分表,产生的日志根据当前时间确定要存入的表名中。为了保险起见,确定手动创建表,先创建两年的表,即24张表,表名如:rz_interfacelog202008,rz_interfacelog202009。
开始我是在navicat中创建的,创建过程如下:
1.创建存储过程:
DELIMITER $$
CREATE PROCEDURE `createInterfaceTables`()
begin
declare i int;
set i=0;
while i<24 do
set @tb = CONCAT('CREATE TABLE IF NOT EXISTS rz_interfacelog',date_format(date_add(curdate(), interval i month),'%Y%m'),
"( `id` varchar(32) NOT NULL,
`phone` varchar(50) NULL DEFAULT NULL COMMENT '手机号',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`parameter` varchar(3000) NULL DEFAULT NULL COMMENT '接口入参',
`paraEncrypt` varchar(3000) NULL DEFAULT NULL COMMENT '加密后的参数',
`operate` varchar(30) NULL DEFAULT NULL COMMENT '操作',
`resultCode
本文介绍了如何在MySQL中一次性创建多张结构相同的日志表,表名以年月为后缀,用于按月分表存储日志数据。通过创建存储过程并在Navicat或Linux MySQL环境下执行,来实现表的批量创建。在过程中遇到了分号结束符和显示所有可能性的提示问题,并给出了相应的解决方案。
最低0.47元/天 解锁文章

1381

被折叠的 条评论
为什么被折叠?



