国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

在Mysql存儲過程中使用事務實例

2024-07-24 13:05:43
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:


CREATE DEFINER=`root`@`localhost` PROCEDURE `createBusiness`(parameter1 int)
BEGIN
    #Routine body goes here...
    DECLARE flag int DEFAULT parameter1;#聲明變量flag,將參數值賦給該變量
    DECLARE uuidStr VARCHAR(32);#聲明一個長度為32位的字符串
    DECLARE currentTime TIMESTAMP;#聲明一個類型為時間戳的變量

    declare err INT default 0;#聲明一個整形變量err,默認值是0
    declare continue handler for sqlexception set err=1;#當sqlexception handler捕捉到異常時,設置err=1

    START TRANSACTION;#開始事務

    WHILE flag>0 DO #注意: while不能空實現(在while塊中,里面必須有語句)

        #uuid()函數得到的字符串是'6ccd780c-baba-1026-9564-0040f4311e29',剔除里面的-,得到一個32位的字符串
        SET uuidStr = REPLACE(UUID(),'-','') ;
        #得到當前的時間
        SET currentTime = CURRENT_TIMESTAMP();
        #執行插入語句,注意連接字符串的函數concat(str1,str2,...);其中str..也可以是數字類型
        INSERT INTO
                                表名稱
                                (id,title,keyword,hasImage,isTodayHead,isShowInHome,isBigness,publishTime,originId,modify_time,isAnalysis)
                     VALUE
                                (uuidStr,CONCAT('事件標題',flag),CONCAT('關鍵字',flag),1,1,0,0,currentTime,CONCAT('xxxxxxx',flag),currentTime,1);
        #每循環一次,flag要減去1,注意沒有flag--的語法
        set flag = flag-1;

        #在這里測試當err=1時,事務是否有了回滾,測試ok
        #IF flag=7 THEN   #注意在procedure中給變量賦值要用到set,或在變量聲明時用default來父子,所以=號可以用來比較兩邊的值是否相等,<=>也可,區別先不去糾結。
                #set err=1;
        #END if;
    END WHILE;

    IF (err=0) THEN
        commit;
        select 'OK';
     ELSE
        rollback;
        select 'err';
     END IF;

END;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乡县| 舒城县| 罗山县| 长子县| 靖宇县| 普洱| 平昌县| 开封县| 舞钢市| 连山| 峡江县| 沂南县| 濉溪县| 寿宁县| 黄骅市| 昌图县| 南皮县| 阜平县| 得荣县| 铁岭县| 陆河县| 松溪县| 焦作市| 株洲市| 汉川市| 庆安县| 嘉荫县| 郧西县| 嵊泗县| 类乌齐县| 自治县| 鹿泉市| 修水县| 汉寿县| 防城港市| 黄石市| 西乌珠穆沁旗| 博野县| 九龙坡区| 崇左市| 冀州市|