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

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

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




主站蜘蛛池模板: 桃色成人精品网站 | 亚洲精品天堂在线观看 | 青草青草久热精品视频在线观看 | 色在线播放 | 日本动态120秒免费 日本叼嗨 | 日本一区二区三区免费高清在线 | 五月婷婷操 | 日韩欧美国产一区二区三区 | 性刺激性色爽爱小说 | 中文字幕欧美日韩在线不卡 | 日本精品久久久久护士 | 欧美午夜在线观看 | 日韩中文字幕免费在线观看 | 伊人色综合7777 | 日本爱爱视频网站 | 亚洲福利在线看 | 中文字幕 国产精品 | 欧美一区二区三区久久综 | 午夜欧美激情 | 亚洲伊人久久大香线蕉结合 | 小草影院在线观看 | 天堂网日本 | 日本免费在线一区 | 日本www色视频成人免费 | 中文字幕在线观看日本 | 日本一二三区在线视频 | 天天干天天舔 | 在线一区视频 | 日产乱码卡一卡2卡三卡四福利 | 速度与激情9在线 | 五月婷婷在线观看 | 日本一区二区三区中文字幕视频 | 日产精品卡二卡三卡四卡乱码视频 | 欧美性色黄大片四虎影视 | 直接黄91麻豆网站 | 日日夜夜天天 | 午夜小视频免费观看 | 图片区偷拍区小说区 | 伊人影院亚洲 | 亚洲日韩中文字幕一区 | 天天做天天爱天天爽综合区 |