mysql 存储过程(我自己写的第一个存储过程,支持事务管理)2
来源:互联网 发布:白无常电商美工教学 编辑:程序博客网 时间:2024/05/01 02:56
自己写的第一个存储过程(procedure),写的还算是比较顺利,在此要多些baidu的帮助,呵呵!
该存储过程支持事务处理,好像在baidu上查看时,发现有些表在创建时声明表类型是InnoDB的表,才支持事务。
好了,将这个小demo公布如下,供以后参考:
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,默认值是0declare continue handler for sqlexception set err=1;#当sqlexception handler捕捉到异常时,设置err=1START 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) THENcommit;select 'OK'; ELSErollback;select 'err'; END IF;END;
- mysql 存储过程(我自己写的第一个存储过程,支持事务管理)2
- 自己写的第一个存储过程
- 写的第一个mysql的存储过程
- [遍历表]我的第一个mysql存储过程
- 我的第一个存储过程
- 我的第一个SQL存储过程
- 我的第一个存储过程
- 第一个mysql存储过程
- 第一个mysql存储过程
- MySql存储过程—2、第一个MySql存储过程的建立
- MySql存储过程—2、第一个MySql存储过程的建立
- MySql存储过程—2、第一个MySql存储过程的建立
- 自己写的存储过程
- 我写的第一个带游标的oracle存储过程
- MySQL存储过程之事务管理
- MySQL存储过程之事务管理
- MySQL存储过程之事务管理
- MySQL存储过程之事务管理
- Objective-C内存管理总结 iphone
- GVIM配置
- Java风格
- 错误: In doing so, the sorting sequence - determined by the table key - was destroyed. 之解决
- Android自定义标题栏
- mysql 存储过程(我自己写的第一个存储过程,支持事务管理)2
- ExtJs4的Chart
- OpenGL中查询模型视图(Model View)矩阵中的数据
- Linux下malloc/free详解
- 每天学习一算法系列(33)(n 支队伍比赛,分别编号为0,1,2......n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j 的队伍中更强)
- 烦恼
- 计算K指数
- web.config设置之system.webServer 详细介绍,为网站设置默认文档
- Android Activity界面切换动画