存储过程
CREATE DEFINER=`root`@`%` PROCEDURE `segment_tx_callin_track`()
BEGIN
DECLARE _exists FLOAT(14,6) DEFAULT 0;
set @mouth= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 MONTH),'%Y%m');
# 新表名
set @new_table_name = concat('tx_callin_track_', @mouth);
# 表是否存在
set @new_table_exists = concat("SELECT count(1) into @tnum FROM information_schema.TABLES WHERE table_name = '",@new_table_name,"'");
PREPARE mte from @new_table_exists;
EXECUTE mte;
set _exists = @tnum;
if _exists = 0 then
# 创建新表
CREATE TABLE `tx_callin_track_new` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`compid` char(6) NOT NULL,
`callid` char(32) NOT NULL,
`busid` char(10) DEFAULT '' COMMENT '技能组ID / IVR ID / 黑名单ID、区域路由ID、时间路由ID',
`bustype` tinyint(4) NOT NULL COMMENT '对应busid
1、IVR记录
2、技能组记录
3、其他(黑名单ID、区域路由ID、时间路由ID)',
`name` varchar(10) DEFAULT '',
`app` varchar(16) NOT NULL COMMENT '1、IVR(bustype =1)
ivr
addme
playcontinue
2、技能组(bustype =2)
group
agent
overtime
overqueue
notworktime
allnotlogin
3、其他(bustype =3)
time
area
blacklist
agent
extension
outline
playback
dtmf
hangup',
`apptype` tinyint(4) NOT NULL COMMENT '1、IVR
1 转入IVR
2 次数累加
3 播放继续
2、技能组
1 转接技能组
2 开始排队
3 准备呼叫坐席
4 呼叫坐席结果(成功/失败)
5 排队超时
6 排队溢出
7 非工作时间
8 所有坐席未登录
3、
1 时间路由
2 区域路由
3 黑名单
4 转呼坐席
5 转呼坐席结果
6 转呼分机
7 转呼分机结果
8 转呼外线
9 转呼外线结果
10 播放音乐
11 获取dtmf
12 挂机
',
`c1` varchar(40) DEFAULT '',
`c2` varchar(10) DEFAULT '',
`date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `cdate` (`date`),
KEY `callid` (`callid`(6))
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
# 旧表重命名
set @table_rename = concat("ALTER TABLE `cdr`.`tx_callin_track` RENAME TO ", @new_table_name);
PREPARE stmt from @table_rename;
EXECUTE stmt ;
# 新表重命名
ALTER TABLE `cdr`.`tx_callin_track_new` RENAME TO `cdr`.`tx_callin_track` ;
end if;
END