zoukankan      html  css  js  c++  java
  • 【mysql】mysql存储过程实例

    ```mysql

    DELIMITER $$
     
    DROP PROCEDURE IF EXISTS `system_number_update` $$
     
    CREATE DEFINER=`root`@`%` PROCEDURE `system_number_update`()
      COMMENT '修改客户的系统编号'
      BEGIN
        DECLARE ccid INT DEFAULT 0;
        -- 声明一个标志done, 用来判断游标是否遍历完成
        DECLARE done INT DEFAULT 0;
        -- 事务错误变量
        DECLARE t_error INT DEFAULT 1;
        -- 获取手机型号数量游标
        DECLARE cur CURSOR FOR
          select DISTINCT(c_id) c_id from zt_repairs  group by repairs_sn,c_id having count(repairs_sn) > 1 order by c_id;
     
        -- 在游标循环到最后会将 done 设置为 1
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
        -- 事务过程中出错处理
        DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=0; -- 出错处理
        START TRANSACTION;
        -- 执行查询,打开游标
        OPEN cur;
        -- 遍历游标每一行
        REPEAT
          -- 把一行的信息存放在对应的变量中
          FETCH cur INTO ccid;
     
          IF NOT done THEN
            set @list_number = 0;
            update zt_repairs  set repairs_sn = left(repairs_sn,4) * 10000 + @list_number := @list_number + 1  where c_id = ccid;
          END IF;
        UNTIL done END REPEAT;
        CLOSE cur;
        -- 结束事务
        IF t_error=0 THEN
          select 1;
          ROLLBACK; -- 事务回滚
        ELSE
          select 2;
          COMMIT; -- 事务提交
        END IF;
      END$$
    DELIMITER ;

    ```

  • 相关阅读:
    pix-PID介绍
    我的四轴专用PID参数整定方法及原理---超长文慎入(转)
    卡尔曼滤波原理
    5种常用的四轴飞行器PID算法讲解集合
    深入浅出无人机姿态,欧拉角,四元数,指数表示及数据转换与程序实现
    理解四元数
    Normal Equation(正规方程)
    特征与多项式回归
    实际梯度下降中的两个重要调节方面
    BZOJ 3624 Apio2008 免费道路
  • 原文地址:https://www.cnblogs.com/china-flint/p/9685607.html
Copyright © 2011-2022 走看看