在Mysql存储过程中使用事务实例
来源:互联网 发布:liguo矩阵怎么使用 编辑:程序博客网 时间:2024/06/06 13:58
http://www.jb51.net/article/49235.htm
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存储过程中使用事务实例
- 如何在mysql 的存储过程中使用事务
- 存储过程中使用事务Transaction实例
- MySQL存储过程中使用事务
- mysql存储过程中使用事务
- mysql存储过程中使用事务
- mysql存储过程中使用事务
- mysql存储过程中使用事务
- mysql存储过程中使用事务
- 存储过程和.Net中使用事务的实例
- 存储过程和.Net中使用事务的实例
- 存储过程和.Net中使用事务的实例
- 在mysql中的存储过程中使用事务transaction【以下内容仅供参考】
- mysql 存储过程及事务实例
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 存储过程中使用事务
- 发邮件之Mutt详解
- 一步一步实现一个简单的OS(简单的让boot加载setup)
- PAT (Basic Level)1026. 程序运行时间
- IDEA使用--字体、编码和基本设置
- c++ 容易出错的笔试题
- 在Mysql存储过程中使用事务实例
- 尝试使用博客
- 前端资源大收集
- jdk和jre的区别
- Masonry自动布局
- 利用pl/sql创建oracle的table
- SCNetworkReachability与RealReachability示例整理
- CloudStack4.8在CentOS6.6下安装环境配置
- 常用的图像特征——颜色、纹理、形状、空间特征