加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql应用Mysql存储过程中游标的用法实例

发布时间:2020-12-12 02:49:42 所属栏目:MySql教程 来源:网络整理
导读:《Mysql应用Mysql存储过程中游标的用法实例》要点: 本文介绍了Mysql应用Mysql存储过程中游标的用法实例,希望对您有用。如果有疑问,可以联系我们。 MYSQL实例 本篇章节讲解Mysql存储过程中游标的用法.供大家参考研究.具体如下: MYSQL实例 1. 批量

《Mysql应用Mysql存储过程中游标的用法实例》要点:
本文介绍了Mysql应用Mysql存储过程中游标的用法实例,希望对您有用。如果有疑问,可以联系我们。

MYSQL实例本篇章节讲解Mysql存储过程中游标的用法.分享给大家供大家参考.具体如下:

MYSQL实例1. 批量插入商户路由关联数据:

MYSQL实例
DELIMITER $$
USE `mmm_mac`$$
DROP PROCEDURE IF EXISTS `批量插入商户路由关联数据`$$
CREATE DEFINER=`root`@`%` PROCEDURE `批量插入商户路由关联数据`()
BEGIN
  DECLARE v_partner_no VARCHAR(32);
 DECLARE v_partner_id INT(11);
 DECLARE v_sc_pid INT(11);
  DECLARE v_mac_no VARCHAR(32);
 DECLARE v_mac_addr VARCHAR(32);
  DECLARE n_mac_no BIGINT;
  DECLARE n_mac_addr BIGINT;
  DECLARE n_mac_addr_str VARCHAR(32);
  DECLARE done INT;
  #取得商户数据
  DECLARE cur_partnerlist CURSOR
  FOR
  SELECT comp_id,partner_no,sc_pid FROM mmm_partner.anl_partner; 
  SET n_mac_no = 100000000;
 SET n_mac_addr = 1000000000;
  OPEN cur_partnerlist;
  REPEAT
    FETCH cur_partnerlist INTO v_partner_id,v_partner_no,v_sc_pid;
    SET v_mac_no = CONCAT('MAC',v_sc_pid,n_mac_no);
    SET n_mac_addr_str = CONCAT(SUBSTR(n_mac_addr,1,2),':',SUBSTR(n_mac_addr,3,5,7,9,2));
    SET v_mac_addr = CONCAT('CC:',n_mac_addr_str);
    SET n_mac_no = n_mac_no + 1;
    SET n_mac_addr = n_mac_addr + 1;
    #向t_machine_sc_config表中插入商户关联路由的数据
    #insert into t_machine_sc_config(mac_no,partner_id,sc_pid,mac_addr,comp_id,is_lock) values('MAC2016000000001','44060430603381',4403,'C8:87:18:AB:79:66',1);
    INSERT INTO t_machine_sc_config(mac_no,is_lock) VALUES(v_mac_no,v_partner_id,v_mac_addr,1);
  UNTIL 0 END REPEAT;
  CLOSE cur_partnerlist;
END$$
DELIMITER ;

MYSQL实例2. 更新商户表:

MYSQL实例
DELIMITER $$
USE `mmm_partner`$$
DROP PROCEDURE IF EXISTS `更新商户表`$$
CREATE DEFINER=`root`@`%` PROCEDURE `更新商户表`()
BEGIN
  DECLARE v_partner_no VARCHAR(32);
  DECLARE vpartner_no VARCHAR(32);
  DECLARE v_partner_id VARCHAR(32);
  DECLARE n BIGINT;
  DECLARE partnerid_list CURSOR
  FOR
  SELECT comp_id FROM 100msh_partner.anl_partner WHERE TRIM(partner_no) = ''; 
  SET vpartner_no = '2015415parno';
  SET n = 10000000;
  OPEN partnerid_list;
  REPEAT
    FETCH partnerid_list INTO v_partner_id;
    SET v_partner_no = CONCAT(vpartner_no,n);
    SET n = n + 1;
    UPDATE mmm_partner.anl_partner SET partner_no = v_partner_no WHERE comp_id = v_partner_id;
  UNTIL 0 END REPEAT;
  CLOSE partnerid_list;
  END$$
DELIMITER ;

MYSQL实例希望本文所述对大家的mysql数据库程序设计有所赞助.

欢迎参与《Mysql应用Mysql存储过程中游标的用法实例》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读