mysql 删除完全重复的样本存储过程

来源:互联网 发布:淘宝关键词价格查询 编辑:程序博客网 时间:2024/06/05 05:18


DELIMITER $$
DROP PROCEDURE IF EXISTS Ptest; 
$$
CREATE PROCEDURE Ptest()
BEGIN 




DECLARE var_sql VARCHAR(1000);
DECLARE var_Where VARCHAR(1000);
DECLARE var_Limit_num VARCHAR(1000);
DECLARE var_table VARCHAR(1000) DEFAULT 'test';
DECLARE var_done INT DEFAULT FALSE;


DECLARE cur_delete_rep_full CURSOR FOR
SELECT CONCAT('delete from ',var_table,' where STATUS=',STATUS,' and bo_id=',bo_id,' limit ',COUNT(1)-1,';')
 FROM test GROUP BY STATUS,bo_id HAVING COUNT(1)>1;


DECLARE CONTINUE HANDLER FOR NOT FOUND SET var_done = TRUE;


IF EXISTS (SELECT STATUS,bo_id 
FROM test GROUP BY STATUS,bo_id
HAVING COUNT(1)>1) THEN


  OPEN cur_delete_rep_full;
  read_loop:LOOP
    FETCH cur_delete_rep_full INTO var_sql;
    IF var_done THEN
      LEAVE read_loop;
    END IF;


   SET @p_sql=var_sql;
   PREPARE stmt FROM @p_sql;
   EXECUTE stmt; 
    END LOOP;
  CLOSE cur_delete_rep_full;
END IF ;




END ;
$$



0 0
原创粉丝点击