mysql 动态存储过程

WHILE ( @i<=30) DO

IF @i = 8 THEN
SET @i = 15;
END IF;
IF @i = 16 THEN
SET @i = 30;
END IF;

DEALLOCATE PREPARE s1;
SET @stmt = CONCAT('INSERT INTO gotable_stayuser_copy(DATE,country,`version`,channel,day',@i,')
SELECT ',DATE_FORMAT(DATE_ADD(t_data, INTERVAL -@i DAY),'%Y-%m-%d'),'t.country,t.`version`,t.channel,t.cc FROM
(SELECT country,`version`,channel,cnt cc FROM h_gosms_stayuser_result_copy WHERE num =',@i,') t
ON DUPLICATE KEY UPDATE day',@i,' = cc');
PREPARE s1 FROM @stmt;
EXECUTE s1;
SELECT @stmt;
DEALLOCATE PREPARE s1;

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

猜你喜欢

转载自serisboy.iteye.com/blog/1616813