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

  • 相关阅读:
    Jquery
    day87-Django创建程序步骤,路由系统和项目执行
    day86-Django安装、cmd控制台操作
    day85-Django初识-自己开发的web框架
    day84-bootstrap
    day83-pymysql操作mysql,pycharm安装pymysql的方法(驱动)
    day82-jQuery-事件、动画、each、data、插件
    day81-jQuery-文档操作
    day80-jQuery-属性操作
    day79-jQuery-文本操作
  • 原文地址:https://www.cnblogs.com/chk520/p/3968087.html
Copyright © 2011-2022 走看看