mysql存储过程

来源:互联网 发布:ubuntu更新命令 编辑:程序博客网 时间:2024/06/04 23:32
CREATE  PROCEDURE `delete_yyb`()BEGIN-- 需要定义接收游标数据的变量  DECLARE pkga CHAR(255);DECLARE ii INT ;  -- 遍历数据结束标志  DECLARE done INT DEFAULT FALSE;  -- 游标  DECLARE cur CURSOR FOR select A.pk FROM(SELECT pakeage AS pk,count(*) AS num FROM t_app_copy2 WHERE app_source = 4 GROUP BY pakeage ) A WHERE A.num>1;-- 将结束标志绑定到游标  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;  -- 打开游标  OPEN cur;  -- 开始循环  read_loop: LOOP    -- 提取游标里的数据,这里只有一个,多个的话也一样;    FETCH cur INTO pkga;    -- 声明结束的时候    IF done THEN      LEAVE read_loop;    END IF;-- 删除无关联的应用    DELETE FROM t_app_copy2  WHERE NOT EXISTS( select * from t_app_theme_list B WHERE B.app_id=id ) AND pakeage=pkga AND app_source=4;   -- 保存有关联的应用  INSERT INTO t_app_copy3 (select * from t_app_copy2 A WHERE EXISTS( select * from t_app_theme_list B WHERE B.app_id=A.id ) AND A.pakeage=pkga  AND A.app_source=4);  END LOOP;  -- 关闭游标  CLOSE cur;END