加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2020-12-12 02:27:50 所属栏目:MySql教程 来源:网络整理
导读:《Mysql应用在Mysql存储过程中使用事务实例》要点: 本文介绍了Mysql应用在Mysql存储过程中使用事务实例,希望对您有用。如果有疑问,可以联系我们。 CREATE DEFINER=`root`@`localhost` PROCEDURE `createBusiness`(parameter1 int) BEGIN ??? #Routine bod

《Mysql应用在Mysql存储过程中使用事务实例》要点:
本文介绍了Mysql应用在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;#开始事务MYSQL教程

??? WHILE flag>0 DO #注意: while不能空实现(在while块中,里面必须有语句)MYSQL教程

??????? #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('关键字',1,currentTime,CONCAT('xxxxxxx',1);
??????? #每循环一次,flag要减去1,注意没有flag--的语法
??????? set flag = flag-1;MYSQL教程

??????? #在这里测试当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;MYSQL教程

END;
MYSQL教程

欢迎参与《Mysql应用在Mysql存储过程中使用事务实例》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读