我在网上看到 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' BEGIN ……  END
都是这样处理的,在begin end里面写处理sql以及业务逻辑。但是这里有一个就是他指定了 SQLSTATE为02000,如果打比方,我这里对所有sqlstate错误进行统一处理呢,该如何写如何实现?

解决方案 »

  1.   


    已经说明了啊,我想一次性处理所有异常啊!很简单的啊!帮助文档里面都是单独处理一种异常sqlstate的例子,我要能一次处理所有所有异常sqlstate的例子,就像oracle里面那样 exception others的方式的处理。
      

  2.   

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION查一下手册就知道了。
    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  3.   

    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红色部分,遇到任何错误都回滚。