在数据库中,所谓事务是指作为单个逻辑工作单元执行的一系列操作。

事务的操作:
  先定义开始一个事务,然后对数据作修改操作,
    这时如果提交(COMMIT),这些修改就永久地保存下来
    如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。
 
在JDBC中,事务默认是自动提交的,每次执行一个 SQL 语句时,如果执行成功,就会向数据库自动提交,而不能回滚
 
为了让多个 SQL 语句作为一个事务执行:
  •调用 Connection 对象的 setAutoCommit(false); 以取消自动提交事务
  •在所有的 SQL 语句都成功执行后,调用 commit(); 方法提交事务
  •在出现异常时,调用 rollback(); 方法回滚事务
 

命令行实现事务处理

  1  查看提交模式

    select @@autocommit
  2、用begin,rollback,commit来实现     
    begin              //开始一个事务            
    rollback          //事务回滚           
    commit          //提交事务
  3、 直接用set来改变mysql的自动提交模式

MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行
    set autocommit
=0     禁止自动提交
    set autocommit
=1    开启自动提交,   来实现事务的处理。
      * 
当你用 set
autocommit
=0 的时候,你以后所有的SQL都将做为事务处理,直到你用commit确认或rollback结束。

  *  
注意:当你结束这个事务的同时也开启了个新的事务

事务隔离级别(transaction isolation levels):隔离级别就是对事务并发控制的四个等级。分为

1  串行化(SERIALIZABLE)

2  可重复读(REPEATABLE READ)

3  读已提交(READ COMMITED)

4  读未提交(READ UNCOMMITED)

1、mysql默认的隔离级别为Repeatable_Read

2、sqlserver 默认的隔离级别为Read Commited

3、oracle数据库支持READ COMMITTED和SERIALIZABLE两种事务隔离性级别,不支持READ UNCOMMITTED和REPEATABLE READ这两种隔离性级别,Oracle数据库默认使用的事务隔离性级别却是READ COMMITTED.

设置当前mysql.exe的隔离级别
隔离级需要使用SET 命令来设定其语法如下:
SET  TRANSACTION 
ISOLATION    LEVEL   隔离级别

隔离级别 
分为四种:

 READ UNCOMMITTED

|  READ COMMITTED

     | REPEATABLE READ
                           | SERIALIZABLE

查询隔离级别

select @@tx_isolation

设置数据库系统的全局的隔离级别

隔离级需要使用SET 命令来设定其语法如下:
 SET  global  TRANSACTION 
ISOLATION    LEVEL   隔离级别

对于同时运行的多个事务,当这些事务访问数据库相同的数据时,如果没有采取必要的隔离机制,就会产生并发问题.

  脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。

  不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。换句话说就是,后续读取可以读到另一事务已提交的更新数据。

  可重复读:在同一事务中多次读取数据时,能够保证所读数据一样,也就是,后续读取不能读到另一事务已提交的更新数据。

  幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。

MySql事务及隔离级别的更多相关文章

  1. MySQL事务学习-->隔离级别

    MySQL事务学习-->隔离级别 6 事务的隔离级别 设置的目的 在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别. 数据库是要被广大客户所共享访问的,那么在数据库操作过程中 ...

  2. MySQL事务及隔离级别详解

    MySQL事务及隔离级别详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的基本架构 MySQL的基本架构可以分为三块,即连接池,核心功能层,存储引擎层. 1> ...

  3. MySql事务的隔离级别及作用

    逻辑工作单元遵循一系列(ACID)规则则称为事务. 原子性:保证事务是一系列的运作,如果中间过程有一个不成功则全部回滚,全部成功则成功.保证了事务的原则性. 一致性:一致性指的是比如A向B转100块钱 ...

  4. [转]MySQL事务学习-->隔离级别

    From : http://blog.csdn.net/mchdba/article/details/12837427 6 事务的隔离级别 设置的目的 在数据库操作中,为了有效保证并发读取数据的正确性 ...

  5. MySQL事务及隔离级别(读书小结)

    标签: MySQL事务 隔离 0.什么是事务? 事务是指MySQL的一些操作看做是一个不可分割的执行单元.事务的特点是要么所有操作都执行成功,要么一个都不执行.也就是如果一个事务有操作执行失败,那么就 ...

  6. MySQL事务的隔离级别

    为什么需要隔离 当多个线程都开启事务操作数据库中的数据时,数据库系统要能进行隔离操作,以保证各个线程获取数据的准确性,在介绍数据库提供的各种隔离级别之前,我们先看看如果不考虑事务的隔离性,会发生的几种 ...

  7. mysql 事务、隔离级别

    一.事务的四大特性(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...

  8. MySQL——事务ACID&隔离级别

    数据库事务ACID&隔离级别 什么是事务 事务是用户定义的一个数据库操作序列.这些操作要么全执行,要么全不执行,是一个不可分割的工作单元.在关系型数据库中,事务可以是一条SQL语句,也可以是一 ...

  9. MySQL 事务的隔离级别

    转载:https://developer.aliyun.com/article/743691?accounttraceid=80d4fddb3dc64b97a71118659e106221tozz 简 ...

随机推荐

  1. phpcms v9 读取地区联动菜单缓存文件

    读取缓存文件的方法是 getcache() 在 phpcms\libs\functions\global.func.php 中可找到. 地区联动菜单的缓存文件是  caches\caches_link ...

  2. 找不到请求的 .Net Framework Data Provider。可能没有安装。

    解决方法: 安装Microsoft SQL Server Compact 4.0. 安装Microsoft SQL Server Compact 4.0之后,程序运行正常. 问题的原因就是程序连接.s ...

  3. 【C#】委托与事件

    一.委托 1.概念:用来存放 方法 指针(地址)的容器. 为什么要有委托?当有的业务代码总体已经实现,但有部分需要调用者来决定,就可以使用委托的方式,让调用者把一段代码以 方法的方式 传入. [例子] ...

  4. [POJ] 1948 Triangular Pastures (DP)

    题目地址:http://poj.org/problem?id=1948 题目大意: 给N条边,把这些边组成一个三角形,问面积最大是多少?必须把所有边都用上. 解题思路: 根据题意周长c已知,求组合三边 ...

  5. JAVA多态示例

    这多态,我觉得是最利害的.在开发大型程序中. 但,也是需要经过足够多的实践经验才能随心利用的. class Quadrangle{ private Quadrangle[] qtest = new Q ...

  6. IBM Cognos 10 启动报错

    报错信息: 15:35:02, 'LogService', 'StartService', 'Success'. 15:35:03, CAF input validation enabled. 15: ...

  7. 【转】Thunderbird中配置签名

    原文网址:https://support.mozilla.org/zh-CN/kb/Thunderbird%E4%B8%AD%E9%85%8D%E7%BD%AE%E7%AD%BE%E5%90%8D “ ...

  8. Sum

    Problem Description XXX is puzzled with the question below: 1, 2, 3, ..., n (1<=n<=400000) are ...

  9. Java设计模式之简单工厂、工厂方法和抽象工厂

    在前面的学习中(参见前面的博客),我们学到了很多OO原则: 封装变化 多用组合,少用继承 针对接口/超类编程,不针对实现编程 松耦合 开闭原则 让我们从一个简单的类开始,看看如何将之改造成符合OO原则 ...

  10. 【KMP+DP】Count the string

    KMP算法的综合练习 DP很久没写搞了半天才明白.本题结合Next[]的意义以及动态规划考察对KMP算法的掌握. Problem Description It is well known that A ...