mysql存储过程事务处理小经验
前段时间做项目遇到了mysql中的存储过程,个人觉得有必要,所以总结了一下,就写出来,如果有哪里不对,请大家多多指教。
mysql中若要用事务则表类型必须为InnoDB.
delimiter //
create PROCEDURE p()
BEGIN
declare hh int default 0;
declare CONTINUE HANDLER for SQLEXCEPTION,SQLWARNING,not found set hh=1;
start TRANSACTION;
insert into userinfo values(6,'ddd','123456',NOW(),'d');
insert into userinfo values(d);
if hh=1 THEN
ROLLBACK;
ELSE
commit;
end if;
select hh;
END
// delimiter;
在dos窗口下,默认执行的是sql语句,第一个delimiter 在这里的作用是告诉它接下来执行的是存储过程,第二个delimiter 的作用是告诉它存储过程执行完了,接下来的还是默认执行sql语句,关于参数:输出参数:out 参数名 数据类型,输入参数:in 参数名 数据类型。不过值得一提的是如果类型是varchar类型则要注明长度如 out num varchar(20);
start transaction开启事务
commit 提交事务
rollback 回滚事务
在start transaction的上一行为处理异常,就是说如果我在下面事务里出错了,这句就会捕捉到异常,后面的set hh=1是在出现异常时,将变量hh的值设为1,
可以据此判断下方语句是否出现错误,如果出错则回滚事务,否则提交事务
上面第二条SQL语句我故意写错,以验证捕捉异常,呵呵大致就是这些了
- MYSQL分页存储过程及事务处理
- 资深架构师Sum的故事:(Mysql)InnoDB下,存储过程中事务的处理
- MYSQL分页存储过程及事务处理--转自peace
- mysql存储过程中使用事务
- SQL Server存储过程中编写事务处理的方法小结
- MySQL存储过程之事务管理
- php调用mysql存储过程返回结果集的处理
- JDBC(4):批处理、存储过程和事务
- 存储过程 务的概念 事务的特性 关于异常的处理 连接池 构JdbcUtil类
- 关于MySQL存储过程异常处理的一点心得
- mysql存储过程之事务篇
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- SQL Server存储过程中编写事务处理的方法小结
- SqlServer数据库的存储过程以及事务处理
- mysql存储过程之事务篇
- MYSQL存储过程事务列子
- mysql存储过程游标与全局事务应用范例
- 在存储过程中编写正确的事务处理代码(SQL Server 2000 & 2005)
- SQL Server在存储过程中编写事务处理代码的三种方法
- 存储过程事务处理模板