zoukankan      html  css  js  c++  java
  • 存储过程例子 易懂

    BEGIN
      DECLARE proname        varchar(100); -- 存储过程名称
      DECLARE result         varchar(1); -- 执行结果
      DECLARE tablename      varchar(100); -- 表名

        -- 定义当前任务出现执行异常时 继续执行其他任务
       -- 1, EXIT: 发生错误时退出当前代码块(可能是子代码块或者main代码块)
       -- 2, CONTINUE: 发送错误时继续执行后续代码
       -- v_result = '2' 意思为出现异常时设置值为2
      DECLARE CONTINUE HANDLER FOR SQLEXCEPTION set v_result = '2';

      BEGIN
            SET proname = 'pro1';
          
        BEGIN  
       -- 设置成不自动提交事务 如果autocommit=1就是自动提交
          SET SESSION autocommit=0;
          SET tablename = 'table1';
          SET result = 1;

           -- 要模拟异常可以把这里的sql语句写错 比如把tablename写错
           -- 这里写你的主题sql语句  比如
           select * from tablename where xx=1;
           
            -- 如果出现异常 那记录错误日志 ,否则提交
          IF result = 2 THEN
            SELECT  NOW(),result; -- 调试时输出一些信息 以便观察执行了哪个分支 完成调试可以去掉
                    ROLLBACK;
               -- 记录日志
               insert into tablename (xx, xx)  values (xx, xx);
            ELSE
            SELECT  result; -- 调试时输出一些信息 以便观察执行了哪个分支 完成调试可以去掉
             COMMIT;
          END IF;

          -- 设置回默认值
         set session autocommit=DEFAULT;
        END;
      END;
    END

    原创文章,转载请注明:http://www.cnblogs.com/langtianya/p/4778130.html

  • 相关阅读:
    IfcFlowDirectionEnum
    QAxWidget
    IfcDistributionFlowElementType
    IfcBuildingElementProxy 概念用法
    opencv图片旋转90度
    IfcMaterialList
    IfcDistributionChamberElement
    IfcArithmeticOperatorEnum
    FileWriter
    IfcDistributionChamberElementType
  • 原文地址:https://www.cnblogs.com/langtianya/p/4778130.html
Copyright © 2011-2022 走看看