批量建表的存储过程

CREATE DEFINER=`root`@`%` PROCEDURE `create_table`()
BEGIN
DECLARE `@i` int(11);
DECLARE `@sqlstr` varchar(2560);
DECLARE `maxi` int(11);
DECLARE `@tab` int(20);

SET `@i`=0;

SET `maxi` =TIMESTAMPDIFF(day,'2016-7-10',(DATE_add('2016-7-10',INTERVAL 1 month)));

WHILE `@i` < `maxi` DO
SET `@tab`=date_format(DATE_ADD('2016-7-10',interval -day('2016-7-10')+1 day),'%Y%m%d')+`@i`;
SET @sqlstr = CONCAT(

"CREATE TABLE data_live_log_",
`@tab`,

"(
`pid` BIGINT(20) NOT NULL AUTO_INCREMENT,
`app_id` VARCHAR(40) COMMENT '接入用户板块ID',
`data_id` VARCHAR(40) NOT NULL COMMENT '数据ID',
`rs_code` VARCHAR(2) COMMENT '敏感词过滤处理结果状态(汇总后状态)',
`anchor_id` VARCHAR(40) COMMENT '主播ID',
`live_id` VARCHAR(40) COMMENT '直播房间ID',
`msg_time` TIMESTAMP COMMENT '消息处理时间',
`ip_address` VARCHAR(40) COMMENT '发送消息客户端IP',
`manchine_code` VARCHAR(40) COMMENT '发送消息用户手机识别码 ',
`imei` VARCHAR(40) COMMENT '发送消息用户国际移动设备标识',
`user_id` VARCHAR(40) COMMENT '发送消息用户ID',
`message_type` INT(2) COMMENT '消息类型:0:用户消息 1:系统消息 2:发送礼物 3:图片 4:转发 5:关注 6:红包 7:私信',
`msg_content` VARCHAR(1000) COMMENT '原始消息内容',
`filter_words` VARCHAR(3000) COMMENT '所命中的敏感词',
`nick_name` VARCHAR(50) COMMENT '发送消息用户昵称',
`star_level` VARCHAR(20) COMMENT '发送消息用户星级',
`platform_id` VARCHAR(20) COMMENT '接入平台ID',
`msg_hash` VARCHAR(100) COMMENT '消息摘要指纹',
`filter_mode` VARCHAR(200) COMMENT '过滤模式',
`risk_rating` INT(4) COMMENT '风险等级',
`content_cat` INT(4) COMMENT '情感分类',
`real_status` INT(4) COMMENT '敏感词过滤真实处理结果状态',
PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表' AUTO_INCREMENT=1 "
);
prepare stmt from @sqlstr;
execute stmt;

SET `@i` = `@i` + 1;
END WHILE;
END

posted on 2016-06-14 09:38  小伊xy  阅读(170)  评论(0编辑  收藏  举报