zoukankan      html  css  js  c++  java
  • Mysql存储过程游标循环操作

    代码
    LABEL_PROC:
    BEGIN
        
        
    -- 任务表关联时使用的key值
        DECLARE v_faxkey VARCHAR(
    50default '';

        
    -- 任务表中的传真状态
        DECLARE v_taskstate 
    int default 0;
        DECLARE v_ID 
    int default 0;
        DECLARE v_userName VARCHAR(
    50default '';


        DECLARE done INT DEFAULT 
    0;
        DECLARE cur1 CURSOR FOR SELECT ID FROM childfax 
    where ParentId=p_id;
        DECLARE CONTINUE HANDLER FOR SQLSTATE 
    '02000' SET done = 1;

        
    -- 如果id不在合法范围,直接返回-1
        
    if( p_id<=0 ) then
            select 
    -1 into result;
            leave LABEL_PROC; 
        end 
    if;

        
    -- id 指定记录不存在,直接返回 -2
        
    if(not exists(select * from parentfax where id=p_id) ) then
            select 
    -2 into result;
            leave LABEL_PROC;
        end 
    if;


      
    if(select count(*) from faxtask where ParentId = p_id and status=1 > 0) then
            select 
    -3 into result;
            select 
    '正在发送中,不能删除';
                    leave LABEL_PROC;
      end 
    if;
      

        
    -- 设置子传真会删除状态 
        UPDATE childfax 
    set faxstate=-1 where ParentId=p_id;
            
        
    -- 设置份传真为删除状态
        UPDATE parentfax 
    set FaxState=-1 where id=p_id;
      
      
    -- 删除任务表中数据
      delete from faxtask 
    where parentid = p_id;


      OPEN cur1;
        
        REPEAT
                FETCH cur1 INTO v_ID;
            
                IF NOT done THEN
                        select username into v_userName from user_childfax_view 
    where id=v_ID;
                        call pro_add_log(v_ID,
    2,concat(v_userName,' 删除') );
                END IF;

            UNTIL done END REPEAT;
          CLOSE cur1;
      
        
    -- 返回执行成功结果
        select 
    1 into result;

    END LABEL_PROC
  • 相关阅读:
    SVM – 线性分类器
    解决mybatis generator无法覆盖XML
    windows下IDEA的terminal配置bash命令
    mysqldump定时备份数据库
    linux清理日志脚本
    MySQL主从同步配置
    mysql binlog日志自动清理及手动删除
    linux搭建FTP服务器并整合Nginx
    mysql解除死锁状态
    git取消跟踪已版本控制的文件
  • 原文地址:https://www.cnblogs.com/Magicam/p/1823062.html
Copyright © 2011-2022 走看看