在Mysql存储过程中使用事务实例

时间:2024-01-21 18:45: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;

标签:Mysql,存储过程,事务
0
投稿

猜你喜欢

  • 关于多元线性回归分析——Python&SPSS

    2023-03-11 17:03:34
  • Python基础练习之用户登录实现代码分享

    2023-11-06 10:59:37
  • 关于python的对象序列化介绍

    2023-07-27 05:02:31
  • Tensorflow实现多GPU并行方式

    2021-03-26 19:43:31
  • 使用pandas库对csv文件进行筛选保存

    2022-12-25 04:55:10
  • asp fso创建与删除文件与文件夹

    2008-12-31 16:07:00
  • 使用pandas实现csv/excel sheet互相转换的方法

    2022-05-22 18:38:18
  • Pytorch相关知识介绍与应用

    2021-11-14 13:37:57
  • 跟老齐学Python之集合(set)

    2023-02-11 00:51:31
  • 使用javaScript动态加载Js文件和Css文件

    2024-04-19 10:16:27
  • 用Python实现服务器中只重载被修改的进程的方法

    2022-06-21 05:11:38
  • javascript 用函数语句和表达式定义函数的区别详解

    2024-04-16 09:06:26
  • Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程

    2023-04-03 12:13:33
  • 浅谈Python类中的self到底是干啥的

    2022-10-24 15:18:41
  • 详谈python中subprocess shell=False与shell=True的区别

    2021-08-01 02:00:01
  • php Exception异常处理详解

    2023-05-29 21:51:37
  • python ImageDraw类实现几何图形的绘制与文字的绘制

    2023-10-14 10:58:13
  • 使用python批量读取word文档并整理关键信息到excel表格的实例

    2022-02-10 16:25:21
  • python中defaultdict的用法详解

    2021-05-02 11:11:07
  • 深入了解NumPy 高级索引

    2023-07-02 05:22:51
  • asp之家 网络编程 m.aspxhome.com