≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > MySQL

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

人气:393 时间:2020-07-09

这篇文章主要为大家详细介绍了在MySQL存储过程中使用事务实例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编小韵来看看吧!

 

代码如下:


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;

 

本文来自:http://www.q1010.com/177/9462-0.html

注:关于在MySQL存储过程中使用事务实例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:MYSQL

您可能感兴趣的文章

  • MySQL查询随机数据的4种方法和性能对比
  • navicat无法远程连接MySQL的解决方法
  • 解决MySQL5中文乱码问题的方法
  • xampp中修改MySQL默认空密码(root密码)的方法分享
  • Centos中安装多个MySQL数据的配置实例
  • MySQL HandlerSocket插件安装配置教程
  • MySQL字符串处理函数详细介绍、总结
  • MySQL提示:The server quit without updating PID file问题的解决办法
  • MySQL中多表删除其中ID相同记录的方法
  • 安全快速修改MySQL数据库名的5种方法
上一篇:MySQL索引类型总结和使用技巧以及注意事项
下一篇:xampp中修改MySQL默认空密码(root密码)的方法分享
热门文章
  • mysql 修改character_set_server为utf-8的简单示例
  • 解决MySQL丢失文件localhost.localdomain.pid、mysql.sock的示例
  • MySQL 数据类型binary和varbinary的简单示例
  • MySQL:reading initial communication packet问题解决方法
  • MySql 表类型MYISAM、InnoDB区别
  • bash: mysql: command not found 的解决方法
  • MYSQL默认用户名ROOT修改方法
  • MySQL 常用命令菜鸟教程
  • MySQL 使用命令行新建用户并授予权限
  • MySql 数据库物理文件存放位置查看示例
  • 最新文章
    • MySQL查看死锁与解除死锁的简单示例
    • MySQL 慢查询的功能实例
    • MySQL查看死锁与去除死锁的简单示例
    • MySQL找出未提交事务的SQL的简单示例
    • MySQL锁阻塞的的简单示例
    • MySQL中的binary类型使用操作的示例
    • SQL优化教程之in与range查询的简单示例
    • MySQL 的 21 个规范、优化最佳实践!
    • MySQL 字符类型大小写敏感的简单示例
    • 解决mybatis-plus分页传入参数后sql where条件没有limit分页信息的问题

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。