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();

  • 相关阅读:
    python 可迭代对象与迭代器
    linux与linux远程桌面
    get return value of python in shell
    python反汇编函数字节码
    celery.backends.base.NotRegistered.
    supervisor process management
    Kafka的Log存储解析
    kafka config
    Chanel
    PowerPoint的公式
  • 原文地址:https://www.cnblogs.com/chk520/p/3968087.html
Copyright © 2011-2022 走看看