zoukankan      html  css  js  c++  java
  • PHP 事务回滚实例

    #若已存在该表,就将其删除;否则创建新的表。
    DROP table IF EXISTS users;
    CREATE TABLE users(
    `user_name` varchar(5) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    #若已存在该存储过程,就将其删除;否则创建新的存储过程
    DROP PROCEDURE IF EXISTS inserOrUpdate;
    CREATE PROCEDURE inserOrUpdate()
    BEGIN
    #--------------------
    #SQLEXCEPTION 对应存储过程执行中所有异常
    #@Auth:CHK
    #@time:2014-9-12 11:37:42
    #--------------------
    #如sql异常,事务回滚
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;END;

    #开启事务
    START TRANSACTION;
    insert into users (user_name) values ('1');
    insert into users (user_name) values ('2');
    SELECT errno;
    select * from users;
    COMMIT;
    END;

    call inserOrUpdate();

    ---------------------------------------------------------------------------

    #若已存在该表,就将其删除;否则创建新的表。
    DROP table IF EXISTS users;
    CREATE TABLE users(
    `user_name` varchar(5) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    #若已存在该存储过程,就将其删除;否则创建新的存储过程
    DROP PROCEDURE IF EXISTS inserOrUpdate;
    CREATE PROCEDURE inserOrUpdate()
    BEGIN
    #--------------------
    #SQLEXCEPTION 对应存储过程执行中所有异常
    #@Auth:CHK
    #@time:2014-9-12 11:37:42
    #--------------------
    #标志是否出错
    DECLARE errno TINYINT DEFAULT '0';
    #如sql异常,将errno设置为1且后续执行退出
    #DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
    BEGIN
     SET errno = 1;
    END;

    #开启事务
    START TRANSACTION;
    insert into users (user_name) values ('1');
    insert into users (user_name) values ('2');
    SELECT errno;
    select * from users;

    #errno为1,事务回滚sql
    IF errno=1 THEN
    ROLLBACK;
    ELSE
    COMMIT;
    END IF;
    END;

    call inserOrUpdate();

  • 相关阅读:
    4500 小Q系列故事——屌丝的逆袭
    HDU 1171 Big Event in HDU
    linux库文件 /usr/lib
    HDU 1860 统计字符
    编程之美~~传话游戏
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1203 I NEED A OFFER!
    各种树
    HDU 3127 WHUgirls
    01背包 完全背包 多重背包 二维费用背包
  • 原文地址:https://www.cnblogs.com/chk520/p/3968087.html
Copyright © 2011-2022 走看看