```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 ;

```

【mysql】mysql存储过程实例的更多相关文章

  1. mysql 创建存储过程

    mysql 创建存储过程 实例一: CREATE PROCEDURE cp_test() BEGIN declare a int; declare b int; ; ; select a,b; END ...

  2. PHP调用MYSQL存储过程实例

    PHP调用MYSQL存储过程实例 标签: mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一:无参的存储过程$conn = ...

  3. 调用MYSQL存储过程实例

    PHP调用MYSQL存储过程实例 http://blog.csdn.net/ewing333/article/details/5906887 http://www.cnblogs.com/kkchen ...

  4. MySQL 有输入输出参数的存储过程实例

    1.MySQL 有输入输出参数的存储过程实例 DELIMITER // DROP PROCEDURE IF EXISTS `test`.`p_getvalue` // CREATE PROCEDURE ...

  5. MySql 存储过程实例 - 转载

    MySql 存储过程实例 将下面的语句复制粘贴可以一次性执行完,我已经测试过,没有问题! MySql存储过程简单实例:                                          ...

  6. MySql 存储过程实例(附完整注释)(转)

    MySql 存储过程实例(附完整注释) 将下面的语句复制粘贴可以一次性执行完,我已经测试过,没有问题! MySql存储过程简单实例:                                   ...

  7. MySql、PostgreSql、SqlServer三种数据库的造数存储过程实例

    主要实例:把临时表tmp_table数据插入到目标表target_table 一.MySql造数存储过程实例 mysql造数 -- 第一步,创建临时表 CREATE TEMPORARY TABLE I ...

  8. MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程

    虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...

  9. Mysql 存储过程实例详解

    存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,存储和和函数的区别在于函数必须有返回值,而存储过程没有,存储过程的参数可以使用IN.OUT.INOUT类型,而函数的参数只能是IN类 ...

  10. Mysql的存储过程(以Mysql为例进行讲解)

       我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 在数据库中,用户通过指定存 ...

随机推荐

  1. [HNOI2017]抛硬币

    Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于××师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A为 ...

  2. ZipUtils

    package com.yundaex.common.exception.util; import java.io.ByteArrayInputStream; import java.io.ByteA ...

  3. SpringBoot整合Redis使用Restful风格实现CRUD功能

    前言 本篇文章主要介绍的是SpringBoot整合Redis,使用Restful风格实现的CRUD功能. Redis 介绍 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-valu ...

  4. JS filter使用

    filter 用于筛选数组中符合条件的所以元素,filter只能接受函数 注意:filter只返回筛选结果,不会对原来数组改变 实现方法: <html lang="en"&g ...

  5. spring中自动装配bean

    首先用@Component注解类: package soundsystem: import org.springframework.stereotype.Component; @Component p ...

  6. Collection-Iterator-foreach

    一.Collection(java.util) 1.概述:具有相同性质的一类事物的汇聚的整体,称为集合.任何集合都包含三块内容:对外的接口/接口的实现/对集合运算的算法.         java中使 ...

  7. Hive基础(1)

    Hive基础(1) Hive的HQL(2) 1. Hive并不是分布式的,它独立于机器之外,类似于Hadoop的客户端. 2. 元数据和数据的区别,前者如表名.列名.字段名等. 3. Hive的三种安 ...

  8. Swift 扩展(Extension)总结

    概要 扩展是给已经存在的类(class),结构体(structure),枚举类型(enumeration)和协议(protocol)增加新的功能.类似Objective-C中的Category,不同的 ...

  9. Json字符串与js数组互相转换

    1.Json数据格式的字符串转换成js数组: JSON.parse(str); // str 字符串格式   2.js数组转换成Json数据格式字符串: var myJSONText = JSON.s ...

  10. Linux Shell流程例子

    #!/bin/bash read -p "input a dight:"echo $REPLY DATE=`date`echo "DATE is ${DATE}" ...