zoukankan      html  css  js  c++  java
  • mysql 存储过程 事务处理 (转)

    BEGIN

        DECLARE t_error INTEGER DEFAULT 0;    

        DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;

        START TRANSACTION;

        #这边放sql语句,涉及到的表必须都为InnoDB

        IF t_error = 1

        THEN         

        ROLLBACK;     

        ELSE        

      COMMIT;   

     END IF;

    END

    http://www.cnblogs.com/bossikill/p/3682839.html

    mysql存储过程中使用事务

    DROP PROCEDURE IF EXISTS  test_sp1 
     CREATE PROCEDURE test_sp1( ) 
        BEGIN 
        DECLARE t_error INTEGER DEFAULT 0; 
        DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 
     
            START TRANSACTION; 
                INSERT INTO test VALUES(NULL, 'test sql 001');    
                INSERT INTO test VALUES('1', 'test sql 002');    
     
            IF t_error = 1 THEN 
                ROLLBACK; 
            ELSE 
                COMMIT; 
            END IF; 
     
     END

    返回执行状态,即是提交了还是回滚了:

    DROP PROCEDURE IF EXISTS  test_sp1
    CREATE PROCEDURE test_sp1( ) 
        BEGIN 
        DECLARE t_error INTEGER DEFAULT 0; 
        DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 
     
            START TRANSACTION; 
                INSERT INTO test VALUES(NULL, 'test sql 001');    
                INSERT INTO test VALUES('1', 'test sql 002');    
     
            IF t_error = 1 THEN 
                ROLLBACK; 
            ELSE 
                COMMIT; 
            END IF; 
       select t_error;   //返回标识位的结果集;
    END

  • 相关阅读:
    SDN期末作业验收
    SDN第五次上机作业
    SDN第四次作业
    SDN第四次上机作业
    SDN第三次上机
    SDN第三次作业
    第二次SDN上机作业
    SDN第二次作业
    SDN第一次上机作业
    SDN第一次作业
  • 原文地址:https://www.cnblogs.com/xihong2014/p/5500362.html
Copyright © 2011-2022 走看看