Mysql存儲過程中游標的用法實例
更新時間:2015年07月08日 10:00:29 作者:defias
這篇文章主要介紹了Mysql存儲過程中游標的用法,以商戶關聯(lián)數(shù)據(jù)的插入及更新為例分析了MySQL存儲過程中游標的使用技巧,需要的朋友可以參考下
本文實例講述了Mysql存儲過程中游標的用法。分享給大家供大家參考。具體如下:
1. 批量插入商戶路由關聯(lián)數(shù)據(jù):
DELIMITER $$
USE `mmm_mac`$$
DROP PROCEDURE IF EXISTS `批量插入商戶路由關聯(lián)數(shù)據(jù)`$$
CREATE DEFINER=`root`@`%` PROCEDURE `批量插入商戶路由關聯(lián)數(shù)據(jù)`()
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;
#取得商戶數(shù)據(jù)
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,2),':',SUBSTR(n_mac_addr,5,2),':',SUBSTR(n_mac_addr,7,2),':',SUBSTR(n_mac_addr,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表中插入商戶關聯(lián)路由的數(shù)據(jù)
#insert into t_machine_sc_config(mac_no, partner_no, partner_id, sc_pid, mac_addr, comp_id, is_lock) values('MAC2016000000001','44060430603381',1,4403,'C8:87:18:AB:79:66',1,1);
INSERT INTO t_machine_sc_config(mac_no, partner_no, partner_id, sc_pid, mac_addr, comp_id, is_lock) VALUES(v_mac_no,v_partner_no,v_partner_id,v_sc_pid,v_mac_addr,1,1);
UNTIL 0 END REPEAT;
CLOSE cur_partnerlist;
END$$
DELIMITER ;
2. 更新商戶表:
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數(shù)據(jù)庫程序設計有所幫助。
相關文章
mysql?dblink跨庫關聯(lián)查詢的實現(xiàn)
本文主要介紹了mysql?dblink跨庫關聯(lián)查詢的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
mysql中mydumper 和 mysqldump 對比使用
MySQL數(shù)據(jù)庫備份工具有其自帶的mysqldump,屬于mysql官方的一款備份工具。但是第三方備份工具mydumper憑借優(yōu)越的特點為更多人所使用。下面就通過測試驗證它們之間的備份效率。2017-05-05
InnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)
下面小編就為大家?guī)硪黄狪nnoDb 體系架構和特性詳解 (Innodb存儲引擎讀書筆記總結)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
MySQL系列之十 MySQL事務隔離實現(xiàn)并發(fā)控制
今天的內容就和大家聊一聊MySQL數(shù)據(jù)庫中關于MySQL事務隔離實現(xiàn)并發(fā)控制的問題,主要是基于鎖實現(xiàn)控制技術2021-07-07
MySQL binlog日志記錄格式寫入機制及相關參數(shù)講解
這篇文章主要為大家介紹了MySQL binlog日志記錄格式寫入機制及相關參數(shù)使用講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
Mysql進行數(shù)據(jù)備份,還原后進行回帖,出現(xiàn)以下錯誤代碼,其實主要是導入數(shù)據(jù)重復的問題,將現(xiàn)在的數(shù)據(jù)表清空,重新導入即可2012-07-07

