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

事务的操作:
  先定义开始一个事务,然后对数据作修改操作,
    这时如果提交(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. ionic初体验

    inoic使用入门安装inoic1.安装nodejs2.通过npm install -g iomic 在全局安装ionic3.通过ionic --help来查看帮助(其他命令详见弹出提示脚本) 后续收 ...

  2. mysql 整形的长度问题

    tinyint  有符号的范围是-128至127: 无符号的范围是0到255,2的8 次方-1: 存储大小为 1 字节. smallint  有符号的范围是-32768至32767: 无符号的范围是0 ...

  3. MAC OSX10.9.2上搭建Apache,php

    mac osx10.9.* 自带了apache, php Apache配置 1- 启动 sudo apachectl start 启动后,访问 http://localhost/ 应该能看到" ...

  4. 如何使用sublime编辑器运行python程序

    现在越发喜欢sublime编辑器了,不仅界面友好美观.文艺,可扩展性还特别强. sublime本身是不具备运行python程序的能力的,需要做些设置才可以.以下是安装好sublime后设置的步骤: 点 ...

  5. Win10使用小技巧

    Win10技巧4.命令行支持Ctrl+V 这项功能使用的人不多,但绝对是跨时代的,因为你终于可以放心大胆地在命令提示符里使用Ctrl+V来粘贴剪贴板内容了.而在此之前,Ctrl+V换来的结果只是一个^ ...

  6. 复杂事件处理引擎—Esper 处理模型

    1.esper的处理模型是持续性的——根据statement中事件流(event stream).视图(views).过滤器(filters)等的选择,esper引擎一旦处理事件数据,就会变更stat ...

  7. 转:ASCII码表_全_完整版

    ASCII码表 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUL 32 (space) 64 @ 96 . 1 SOH 33 ! 65 A 9 ...

  8. 什么时候使用NO_UNNEST

    select * from test a where object_id in (select department_id from hr.dept_1 dept where department_i ...

  9. BZOJ3412: [Usaco2009 Dec]Music Notes乐谱

    3412: [Usaco2009 Dec]Music Notes乐谱 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 35  Solved: 30[Sub ...

  10. Function对象

    Function对象是js中很重要的一个元素,js中所有自定义的函数都是Function对象,所以String,Number,Boolean,function等都是Function对象.所以,在使用t ...