手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >在Mysql存储过程中使用事务实例
在Mysql存储过程中使用事务实例
摘要:复制代码代码如下:CREATEDEFINER=`root`@`localhost`PROCEDURE`createBusiness`(par...

复制代码 代码如下:

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 动态执行存储过程语句

mysql多次调用存储过程的问题

Linux mysql命令安装允许远程连接的安装设置方法

sql多表联查实例

MySQL5创建存储过程的示例

MySQL的字符串函数使用说明

MySql的存储过程学习小结 附pdf文档下载

MySQL 有输入输出参数的存储过程实例

mysql中用于数据迁移存储过程分享

mysql开启远程登录功能

精品推荐
分类导航