```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. 字典排序permutation

    理论 C++ 中的next_permutation 一般作为正序全排列的使用规则,其实这个就是正序字典排序的实现. 比如我们要对 列表 [1,2,3]  做full permutation 一般使用递 ...

  2. .NET 基础 一步步 一幕幕[Winform应用程序]

    时隔半载,重回博客园,一切从头再来,今天只是开始,原谅我这一生放荡不羁爱自由. 进入今天得主题曲:Winform应用程序(简介) 1.      winform应用程序是一种智能客户端技术,我们可以使 ...

  3. Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) D

    Country of Metropolia is holding Olympiad of Metrpolises soon. It mean that all jury members of the ...

  4. E. Karen and Supermarket

    E. Karen and Supermarket time limit per test 2 seconds memory limit per test 512 megabytes input sta ...

  5. 基于Java实现的快速排序

    简述 快速排序是一种排序执行效率很高的排序算法,它利用分治法来对待排序序列进行分治排序,它的思想主要是通过一趟排序将待排记录分隔成独立的两部分,其中的一部分比关键字小,后面一部分比关键字大,然后再对这 ...

  6. Intellij idea 创建JAVA项目

    1. 打开软件,new一个project的java项目 2. 点击下一步,此界面可通过模板生成项目,如下图 3. 填写项目名称和项目源码的保存路径,如下图 4. 点击 Finish 完成按钮即可,项目 ...

  7. 如何在CSS中解决长英文单词的页面显示问题?CSS3

    简言 在页面排版中,经常遇到长英文单词溢出段落容器的情况,如何解决该问题?现编制如下对比演示程序: 演示程序 42du.cn-在线演示程序 部分html代码 <div class="b ...

  8. SharePoint Online和SharePoint 2016 导出到Excel 表错误

    导出到Excel是一个有用的SharePoint功能.偶尔您可能会遇到该功能无法正常工作的情况.有几个原因可能导致此功能无法正常工作. Problem #1 使用非32位Internet Explor ...

  9. HDU 2546 饭卡(带限制的01背包变形)

    思路:有几个解法,如下 1)先拿出5块买最贵的菜,剩下的菜再进行01背包.如何证明正确性?设最贵的菜价e,次贵的菜价s,设减去5后的余额为x,会不会产生这样的情况,假设用5元买了e,余额最多能买到x- ...

  10. VC 对话框设置背景颜色和图片

    改变背景颜色,有两种方法: 1.在app的初始化函数中调用:void SetDialogBkColor( COLORREF clrCtlBk = RGB(192, 192, 192), COLORRE ...