首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql 存储过程里面 怎么对所有错误做一个统一的处理呢

2012-09-14 
mysql 存储过程里面 如何对所有异常做一个统一的处理呢?我在网上看到 DECLARE CONTINUE HANDLER FOR SQLST

mysql 存储过程里面 如何对所有异常做一个统一的处理呢?
我在网上看到 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' BEGIN …… END
都是这样处理的,在begin end里面写处理sql以及业务逻辑。

但是这里有一个就是他指定了 SQLSTATE为02000,如果打比方,我这里对所有sqlstate错误进行统一处理呢,该如何写如何实现?

[解决办法]
详细说明要求
[解决办法]
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

查一下手册就知道了。
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
[解决办法]
create PROCEDURE a(ia int )
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
insert into tablename values(ia+1,'2009-01-01 10:00:00','2009-01-02 11:00:00');
insert into tablename values(ia+2,'2009-01-01 10:00:00','2009-01-02 11:00:00');
insert into tablename values(ia,'2009-01-01 10:00:00','2009-01-02 11:00:00');
-- ROLLBACK; 
COMMIT ;
end

红色部分,遇到任何错误都回滚。
[解决办法]

探讨

create PROCEDURE a(ia int )
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
insert into tablename values(ia+1,'2009-01-01 10:00:00','2009-01-02 11:00:00');
insert into ……

热点排行