DELIMITER // DROP PROCEDURE IF EXISTS update_hit// CREATE PROCEDURE update_hit() BEGIN /* 定义变量一 */ DECLARE _done int default 0; DECLARE a1 int; DECLARE a4 datetime; DECLARE a2 VARCHAR(200) character set utf8; DECLARE a3 Bigint(32); DECLARE description VARCHAR(200) character set utf8; /* 定义光标 */ DECLARE _Cur CURSOR FOR SELECT product_id,trophy_name,user_id,hit_time FROM hit_trophy_tab ; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;#错误定义,标记循环结束 /* 打开光标 */ OPEN _Cur; /* 循环执行 */ REPEAT FETCH _Cur INTO a1, a2, a3, a4; IF NOT _done THEN set description=REPLACE("参与了门店抽奖活动,并获得奖品【%s】",'%s',a2); INSERT INTO merchant_event(`merchant_id`,`user_mac`,`subtype_id`,`description`,`added_at`) VALUES(a1,a3,4,description,unix_timestamp(a4)); END IF; UNTIL _done END REPEAT; #当_done=1时退出被循 /*关闭光标*/ CLOSE _Cur; END// |
|