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

  • 相关阅读:
    JZ36 两个链表的第一个公共结点
    程序员的表达能力
    Git学习(2)-使用Git 代码将本地文件提交到 GitHub
    初识模块
    三元表达式、递归、匿名函数
    CSRF
    XSS前置课程--同源策略
    XSS
    SQL注入基础入门
    Linux下ettercap的安装,make安装软件步骤
  • 原文地址:https://www.cnblogs.com/xihong2014/p/5500362.html
Copyright © 2011-2022 走看看