zoukankan      html  css  js  c++  java
  • mysql 存储过程中注意的问题

            OPEN cur;
            REPEAT
                FETCH cur INTO int_type, int_element_id, int_num, int_user_id;
                IF NOT _DONE THEN
                    IF int_type = 8 THEN 
    
                        SET int_num_raw = 0;
    
                        SELECT num INTO int_num_raw FROM  user_item WHERE user_id = int_user_id AND item_id = int_element_id;
                        SET _DONE = 0;
                        IF int_num_raw < int_item_max_overlap THEN 
                            IF int_num_raw + int_num > int_item_max_overlap THEN
                                SET int_num = int_item_max_overlap - int_num_raw;
                            END IF;
                            INSERT INTO user_item SET user_id = int_user_id, item_id = int_element_id, num = int_num ON DUPLICATE KEY UPDATE num = num + int_num;
                        END IF;
                        
                    ELSEIF int_type = 11 THEN 
                        UPDATE `user` SET `exp` = `exp` + int_num WHERE `user_id` = int_user_id;
                    ELSEIF int_type = 12 THEN 
                        UPDATE `user` SET `gold` = `gold` + int_num WHERE `user_id` = int_user_id;
                    ELSEIF int_type = 13 THEN 
                        UPDATE `user` SET `diamond` = `diamond` + int_num WHERE `user_id` = int_user_id;
                    ELSEIF int_type = 14 THEN 
                        UPDATE `user` SET `health_cur` = `health_cur` + int_num WHERE `user_id` = int_user_id;
                    END IF;
                END IF;
            UNTIL _DONE  END REPEAT;
        CLOSE cur;

    加红的需要注意,需要设置set _done = 0,否则循环无法进行下去,坑了我半天。。。

  • 相关阅读:
    go语言的grpc安装记录
    MySQL1:客户端/服务器架构
    设计模式
    乐观锁与悲观锁的选择
    compareAndSwapObject 产生ABD原因
    wangEditor
    ckeditor4学习
    git公司远程提交
    java面试题总结
    基本数据类型和包装类
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/4635927.html
Copyright © 2011-2022 走看看