请参考注释
-- 如果存储过程存在就删除
DROP PROCEDURE IF EXISTS `proc_sec_dialy`;
-- 创建存储过程
CREATE PROCEDURE `proc_sec_dialy`()
BEGIN
-- 声明游标的变量
declare honey_id varchar(225) DEFAULT 'cursor-default';
declare ip_in INT DEFAULT 0;
declare done INT DEFAULT FALSE;
-- 创建游标
DECLARE cursor_global_ip_in CURSOR FOR (
select honeyId,count(direction) as ipIn from netinfo where direction = 1 GROUP BY honeyId
);
-- 绑定游标的结束符
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 设置当前日期
set @today = curdate();
-- 打开游标
OPEN cursor_global_ip_in;
-- 循环
read_loop: LOOP
-- 取游标的值给变量
FETCH cursor_global_ip_in INTO honey_id, ip_in;
-- 判断结束
IF done THEN
LEAVE read_loop;
END IF;
-- 判断数据是否存在
IF NOT EXISTS(select statisticsDate from aaa_global_daily where statisticsDate = @today and honeyId = honey_id) THEN
insert into aaa_global_daily(honeyId, statisticsDate, ipIn) value(honey_id, @today, ip_in);
ELSE
update aaa_global_daily set ipIn = ip_in where statisticsDate = @today and honeyId = honey_id;
END IF;
-- 结束循环
END LOOP;
-- 关闭游标
CLOSE cursor_global_ip_in;
END;