六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

MySQL存儲過程 游標 出錯處理的示例代碼

[摘要]MySQL存儲過程 游標 錯誤處理的示例代碼--set_account_data 重新生成用戶編號BEGINDECLARE temp_id INT(8); ...
MySQL存儲過程 游標 錯誤處理的示例代碼

--set_account_data 重新生成用戶編號

BEGIN
  DECLARE temp_id INT(8);                                        /*用戶id*/
  DECLARE temp_manager INT(8);                            /*上級id*/
  DECLARE temp_accounter_no VARCHAR(64);        /*上級編碼*/
    DECLARE temp_max_no VARCHAR(64);                    /*上級的最大下級編碼*/
    DECLARE max_no VARCHAR(64);                                /*編碼*/
    DECLARE str1 VARCHAR(64);                                    /*編碼*/
    DECLARE temp_no INT(8);                                        /*編碼*/
    DECLARE temp_level INT(8);                                /*級次*/
    DECLARE state VARCHAR(30);                                /*錯誤處理監聽變量*/

    /*定義用戶表游標*/
    DECLARE account_cursor CURSOR FOR SELECT id,manager FROM account ORDER BY manager,id;

    /*定義錯誤處理監聽,用于結束游標循環*/
    DECLARE CONTINUE HANDLER FOR 1329
    BEGIN
        SET state = 'error';
    END; 

  OPEN account_cursor;
  REPEAT
        FETCH account_cursor INTO temp_id,temp_manager;
        IF (temp_id = 1) THEN
            UPDATE account SET leaf = 0,no = '01',level = 1 WHERE id = 1;
        ELSE
            /*設置上級leaf為0*/
            UPDATE account SET leaf = 0 WHERE id = temp_manager;
            /*查詢上級編號*/
            SELECT no INTO temp_accounter_no FROM account WHERE id = temp_manager;
            /*設置上級編碼*/
            UPDATE account SET pno = temp_accounter_no WHERE id = temp_id;
            /*查詢上級原有的最大下級編碼*/
            SELECT MAX(no) INTO temp_max_no FROM account WHERE pno = temp_accounter_no;
            /*如果最大下級編碼為空,生成新的編碼,否則把原來的編碼加一*/
            IF (temp_max_no IS NULL) THEN
                SET max_no = concat(temp_accounter_no, '0001');
            ELSE 
                SET str1 = SUBSTR(temp_max_no,LENGTH(temp_max_no)-3,4);
                SET temp_no = str1;
                SET temp_no = temp_no + 1;
                SET str1 = temp_no;
                IF (LENGTH(str1) = 1) THEN
                    SET str1 = concat('000', str1);
                ELSEIF (LENGTH(str1) = 2) THEN
                    SET str1 = concat('00', str1);
                ELSEIF (LENGTH(str1) = 3) THEN
                    SET str1 = concat('0', str1);            
                END IF;
                SET max_no = concat(temp_accounter_no, str1);
            END IF;
            UPDATE account SET no = max_no WHERE id = temp_id;
            SET temp_level = (LENGTH(max_no) + 2) / 4;
            UPDATE account SET level = temp_level WHERE id = temp_id;
        END IF;
        UNTIL state = 'error'
    END REPEAT;
    CLOSE account_cursor;
    /*修改leaf為null的為1*/
    UPDATE account SET leaf = 1 WHERE leaf IS NULL;
    RETURN 0;
END

以上就是MySQL存儲過程 游標 錯誤處理的示例代碼的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 天堂√在线中文资源网 | 视频一区在线播放 | 深夜福利亚洲 | 亚洲精品在线观看视频 | 天堂8中文在线最新版在线 天堂8中文在线bt | 午夜污污 | 色免费网站 | 亚洲第一黄色 | 亚洲一区免费看 | 日韩欧美精品 | 天天躁夜夜躁狠狠躁2021西西 | 最新日韩精品 | 青娱乐免费视频 | 四虎在线永久精品高清 | 色偷偷91综合久久噜噜app | 亚洲va中文va欧美va爽爽 | 日韩一区精品 | 日本特黄特色aaa大片免费欧 | 色18姝姝 | 羞羞色在线观看 | 色天使久久综合给合久久97色 | 日韩一区二区在线观看 | 欧美特黄a级高清免费看片 欧美特黄a级高清免费大片 | 日本在线观看一区二区三区 | 四虎影院永久免费 | 天天色综合色 | 欧美性群另类大交人妖 | 五月天婷婷基地 | 中国国产aa一级毛片 | 欧美在线小视频 | 青草青青在线视频 | 亚洲 欧美 丝袜 制服 在线 | 青青草视频国产 | 日本天堂影院 | 淫片网站 | 三级黄免费 | 中文字幕欧美成人免费 | 日一日射一射 | 亚洲福利区 | 日本激情在线 | 青娱乐免费视频观看 |