zoukankan      html  css  js  c++  java
  • Mysql事务处理

    Mysql中MyISAM存储引擎不支持事务,InnoDB和BDB支持事务

    事务是一组连续的数据库操作,而这组操作是不可分割的,也就是说这组操作要么全执行成功,要不就全部执行失败(实际不执行)。

    事务有以下四个标准属性的缩写ACID,通常被称为:

    原子性: 确保工作单元内的所有操作都成功完成,否则事务将被中止在故障点,和以前的操作将回滚到以前的状态。

    一致性: 确保数据库正确地改变状态后,成功提交的事务。

    隔离性: 使事务操作彼此独立的和透明的。

    持久性: 确保提交的事务的结果或效果的系统出现故障的情况下仍然存在。

     MYSQL的事务处理主要有两种方法。
       1、用begin,rollback,commit来实现
           begin 开始一个事务
           rollback 事务回滚
           commit  事务确认
       2、直接用set来改变mysql的自动提交模式
           MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
           set autocommit=0  禁止自动提交
           set autocommit=1 开启自动提交
           来实现事务的处理。
    但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!

    走一遍:

    先新建一个innodb表

    create table test(
    id int(9)
    )ENGINE=INNODB;

    操作:

    begin;
    insert into test value(1);
    insert into test value(2);
    commit;

    测试一下

    begin;
    insert into test value(3);
    select * from test;
    (此时结果中有3);
    rollback;
    select * from test;
    (此时结果中无3);
  • 相关阅读:
    python模块--time模块
    python模块--如何相互调用自己写的模块
    Animating Views Using Scenes and Transitions
    fragment 切换
    android textview 设置text 字体
    android intent 5.1
    android EditView ime
    animation of android (4)
    animation of android (3)
    animation of android (2)
  • 原文地址:https://www.cnblogs.com/orlion/p/4801423.html
Copyright © 2011-2022 走看看