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

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

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知識。




主站蜘蛛池模板: 四虎影视www四虎免费 | 四虎免费在线播放 | 性荡视频播放器在线视频播放 | 亚洲va中文va欧美va爽爽 | 奇米综合| 亚洲经典在线观看 | 青青青手机视频在线观看 | 在线午夜视频 | 日本午夜三级 | 色综久久天天综合绕视看 | 天堂资源中文官网 | 深爱激情婷婷 | 伊人色综合7777 | 色偷偷尼玛图亚洲综合 | 一区二区视频在线播放 | 亚洲综合精品一二三区在线 | 亚洲a成人7777777久久 | 欧美桃色视频 | 香蕉视频在线观看男女 | 日韩美女网站 | 欧美污视频网站 | 亚洲男人的天堂久久香蕉 | 伊香蕉大综综综合久久 | 污污小视频在线观看 | 日韩私人影院 | 亚洲精品美女在线观看 | 日韩毛片免费视频 | 最近日本韩国观看 | 天天爱天天做天天爽夜夜揉 | 夜色福利久久久久久777777 | 日本欧美久久久久免费播放网 | 欧美一区日韩一区中文字幕页 | 色www免费视频 | 午夜视频在线观看一区 | 天天爽天天色 | 亚洲最大成人综合网 | 亚洲 自拍 中文字幕 在线 | 人与禽交免费网站视频 | 最近免费韩国高清在线观看 | 探花网站 | 视频精品一区二区 |