mysql 存储过程 示例代码

drop procedure if exists  P_SEQUENCE;

/** 暂省略包
  @AUTO LIANGRUI 2014/6/27
  T_PRO_PRODUCT 表
	排序 对整个表进行按序号排序
  根据序号从新自然排序 重复序号的安创建日期分配序号
	测试阶段

  测试调用
	set @merid='TEST66';
	call P_SEQUENCE(@merid);
	**/
create procedure P_PRODUCT_SEQUENCE( in v_merchar_id VARCHAR(100))
begin

  DECLARE v_id    VARCHAR(100);
  DECLARE v_rowNo VARCHAR(100);
  DECLARE flag int;
  DECLARE e_error INTEGER DEFAULT 0;  

  -- 定义游标
 DECLARE c_cur CURSOR  for
   Select a.id ,(@rowNum:[email protected]+1) as rowNo
    From T_PRO_PRODUCT a ,(Select (@rowNum :=0)) b
     where MERCHANT_ID=v_merchar_id
      order by ISNULL(a.sequence),a.sequence,a.create_dt;

   DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1;
   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET e_error=1;
   SET flag=0; 

   OPEN c_cur;
    -- 循环所有的行
   REPEAT
      FETCH c_cur INTO v_id,v_rowNo;
    update T_PRO_PRODUCT SET sequence= v_rowNo where ID=v_id;
       -- 循环结束
      UNTIL flag
   END REPEAT;

   -- 关闭游标
   CLOSE  c_cur;

	-- 事务处理
	IF e_error = 1 THEN
			ROLLBACK;
	ELSE
			COMMIT;
	END IF;

end

上面的其实可以进行简化

SET @colNo = 0;

UPDATE T_PRO_PRODUCT SET SEQUENCE=(@colNo:[email protected]+1)  WHERE MERCHANT_ID=‘TEST66‘ ORDER BY SEQUENCE, CREATE_DT DESC;

mysql 存储过程 示例代码,布布扣,bubuko.com

时间: 2024-12-17 04:45:37

mysql 存储过程 示例代码的相关文章

Mysql 存储过程示例

DELIMITER $ CREATE PROCEDURE generate_Equipment(district INT,warehouseNO VARCHAR(10) ) BEGIN DECLARE l_no VARCHAR(50); DECLARE l_address VARCHAR(20) ; DECLARE l_name VARCHAR(20) ; DECLARE l_city VARCHAR(20) DEFAULT "天津"; DECLARE l_longitude DOUB

jdbc调用mysql存储过程实现代码带有输入和输出

转载自 http://www.jb51.net/article/34747.htm 1. 创建存储过程 建立一个MySQL的存储过程 add_pro 复制代码代码如下: delimiter // drop procedure add_pro // create procedure add_pro(a int , b int , out sum int ) begin set sum = a * b; end; // 2. 调用存储过程 复制代码代码如下: package com.zhanggao

Golang 用go-sql-driver 调用MySQL存储过程时的问题排查

今天在用go-sql-driver做MySQL driver调用MySQL的存储过程时遇到一个罕见的报错.本文对这个错误及其解做一个简单的总结. 1 问题描述 按照go中sql包提供的接口,应用层代码调用MySQL存储过程的代码一般如下所示: result, err := dbh.Exec("call some_procedure(?, ?)", param1, param2) if err != nil { // error handler } // using result...

MySQL 存储过程 存储函数 概念示例

一个存储过程是一个可编程的函数,它可以在MySQL中创建并保存.它是由一些SQL语句和一些特殊的控制结构语句组成. 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定的功能时,存储过程是一个非常有用的方式.数据库中的存储过程可以看做是对编程中面向对象方法的模拟. 基本示例total_ordres delimiter // create procedure total_orders (out total float) BEGIN     select sum(amount)  into t

一点示例明白mysql存储过程

</pre></div><div style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; line-height: 21px;">

SqlServer中存储过程 returnC#代码处理以及对应的MySQL如何改写

一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names varchar(50), address varchar(50), paw varchar(50) ) 2.创建存储过程 create proc testp12(@id int ,@names varchar(50),@address varchar(50),@paw varchar(50)) as begin declare @maxid int i

集算器调用数据库存储过程的代码示例

集算器可以方便的调用数据库的存储过程,这里通过例子来看一下具体的程序写法. 调用无返回值的存储过程 用oracle的存储过程为例,存储过程只有一个输入参数,没有输出参数: create orreplace procedure pro1 (pid IN VARCHAR) as begin insert into emp values(pid,'mike'); update emp set name='rose' where id=pid; commit; end; 在集算器中可以使用execute

mysql存储过程之异常处理篇

mysql存储过程也提供了对异常处理的功能:通过定义HANDLER来完成异常声明的实现 语法如下: DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement handler_type: CONTINUE | EXIT condition_value: SQLSTATE [VALUE] sqlstate_value | condition_name | SQLWARNING | NOT FOUND | SQLEXCEPT

MySQL 存储过程实例

文件:MySQL存储过程.rar大小:467KB下载:下载MySQL 5.0以后的版本开始支持存储过程,存储过程具有一致性.高效性.安全性和体系结构等特点,本节通过具体的实例讲解PHP是如何操纵MySQL存储过程的.实例说明 为了保证数据的完整性.一致性,提高应用的性能,常采用存储过程技术.MySQL 5.0之前的版本并不支持存储过程,随着MySQL技术的日趋完善,存储过程将在以后的项目中得到广泛的应用.本实例将介绍在MySQL 5.0以后的版本中创建存储过程.技术要点 一个存储过程包括名字.参