MySQL 存储过程 利用cursor 安全模式下根据id的删除

-- delete duplication emails 
DElimiter $$
drop procedure if exists remove_duplication_email $$
create procedure remove_duplication_email()
begin
  declare a int default null ;
  declare IS_FOUND integer default 1;
  declare cur_duplication_emails cursor for SELECT id
      FROM
        `case_mail_inbox` inbox
      WHERE inbox.id >
        (SELECT
          MIN(inner_box.id)
        FROM
          case_mail_inbox inner_box
        WHERE inner_box.internet_msg_id = inbox.`internet_msg_id`);
  declare continue handler for not found set IS_FOUND=0;
open cur_duplication_emails;
read_loop: LOOP
 fetch cur_duplication_emails into a;
 if IS_FOUND =0 then
 leave read_loop;
 end if;
 DELETE
FROM
  `case_mail_attachment`
WHERE mail_ref=a;
DELETE
FROM
  `case_mail_inbox`
WHERE id =  a;
end LOOP;
close cur_duplication_emails;
end $$
DELIMITER ;

call remove_duplication_email();

drop procedure if exists remove_duplication_email;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值