复制代码 代码如下:
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;

标签:
Mysql,存储过程,事务

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

评论“在Mysql存储过程中使用事务实例”

暂无“在Mysql存储过程中使用事务实例”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。