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 ;

    ```

  • 相关阅读:
    gcc/g++命令参数笔记
    周总结
    帆软FineBI试用
    C++输入流
    tt
    linux6 安装oracle11g
    linux下修改/dev/shm tmpfs文件系统大小
    centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    Linux Network配置
    安装KornShell(KSH)
  • 原文地址:https://www.cnblogs.com/china-flint/p/9685607.html
Copyright © 2011-2022 走看看