我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql之事务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql之事务

我们先来说说什么是事务:

       事务就是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功,要不全都失败。一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败。

       mysql的事务支持不是绑定在mysql服务器本身,而是与存储引擎相关。例如,MyISAM:不支持事务,用于只读程序提高性能;InnoDB:支持ACID事务,行级所,并发;Berkeley DB:支持事务。

      

事务的特性(ACID):

       1.原子性(Atomicity):确保工作单元内的所有操作都成功完成,否则事务将被终止在故障点,和以前的操作将回滚到以前的状态。简单的说就是,一组事务,要么成功,要么撤回;

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

       3.隔离性(Isolation):使事务彼此的操作的独立和透明,即事务独立运行,一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。

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


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结束。当我们结束这个事务的同时也开启了个新的事务。按第一种方法只将当前的作为一个事务。mysql中只有INNODE和BDB类型的数据表才能支持事务处理,其他的类型是不支持的。


       在mysql中,事务开始使用COMMIT或ROLLBACK语句开始工作和结束。开始和结束语句的sql命令之间形成了大量的事务。

COMMIT&&ROLLBACK:

        这两个关键字用于提交和回滚,主要用于mysql的事务。当一个成功的事务完成后,发出COMMIT命令应使所有参与表的更改才会生效。如果发生故障,应发出一个ROLLBACK命令,使返回的事务中引用的每一个表回到以前的状态。


使用mysql的过程:

       (1)在执行sql语句之前我们要开启事务 start transaction

       (2)正常执行我们的sql语句

       (3)当sql语句执行完毕,存在两种情况:

                a.全都成功,我们要将sql语句对数据库造成的影响提交到数据库中,commit

                b.某些sql语句失败,我们执行rollback(回滚),将对数据库的操作赶紧撤销


接下来我们来看一个实例:(关于银行存取钱的)

      create table bank(name varchar(20),money decimal(5,1))engine=innodb default charset = utf8

      insert into bank values(‘shaotuo’,1000),(‘laohu’,5000)

      select * from bank

       mysql之事务

       没有成功的话执行回滚rollback

      start transaction;//开启事务

      update bank set money=money+500 where name = ‘shaotuo’//修改数据

      update bank set moey=money-500 where name = ‘laohu’

      ERROR 1054(42522):Unknown column ‘moey’in ‘filed list’

     

      由于上述有一个错误,我们要执行回滚rollback操作:

       rollback;

       select * from bank;

       mysql之事务

      我们可以看到表没有变化

      成功之后进行commit操作:

      start transaction;

       update bank set money=money+500 where name = ‘shaotuo’

       update bank set money=money-500 where name = ‘laohu’

       两个都执行成功后commit

       commit;

       select * from bank;

       mysql之事务

    我们可以看到我们修改数据成功了。


     


























免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql之事务

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

MySQL学习之事务详解

目录一. 事务的业务场景二. 事务的使用三. 事务的特性(ACID)1. 原子性(Atomicity)2. 一致性(Consistency)3. 持久性(Durability)4. 隔离性(Isolation)四. 事务并发异常1. 脏读2
2022-12-08

day 59 MySQL之锁、事务、优化

本节目录一 锁的分类及特性二 表级锁定(MyISAM举例)三 行级锁定四 查看死锁、解除锁五 事务六 慢日志、执行计划、sql优化七 OLTP与OLAP的介绍和对比八 关于autocommit的测试一 锁的分类及特性  数据库锁定机制简单来
2023-01-31

SQL之Mysql事务的概念与应用

代码分享:https://github.com/mtdgclub/PDO 具体查看根目录下的pdoAffair.php文件代码 2. 事务的四大特性 原子性:事务必须是一个不可分割的整体,要么做完,要么不做。 一致性:事务执行前和执行后来源和去向保持平衡
SQL之Mysql事务的概念与应用
2014-05-05

MySQL 之视图、 触发器、事务、存储

本文内容:视图触发器事务存储过程内置函数流程控制索引----------------------------------------------------------------------------------------------
2023-01-31

MySQL事务。

相关资料:https://zhuanlan.zhihu.com/p/70701037        https://zhuanlan.zhihu.com/p/59061106一、事务。  1、概念。事务是由一组SQL语句组成的逻辑处理单元。  2、事务的属性(
2018-12-10

MySQL—事务

MySQL—事务 🔎定义🔎事务的特性原子性一致性持久性隔离性 🔎并发执行事务可能产生的问题脏读不可重复读幻读总结 🔎MySQL—事务的隔离级别 ǵ
2023-08-16
2023-09-09

mysql-事务

1.事务(transaction)事务是业务逻辑的一个基本的单元组成。每一个事务由一条条sql语句组成。和事务相关的语句(insert,delete,update)这些DML语句事务的存在保证了数据的安全性。事务机制:每一次执行DML语句都会记录操作,但不会修
mysql-事务
2019-08-05

【MySQL】事务

文章目录 1. 前言2. 事务简介3. 事务操作4. 事务四大特性5. 并发事务的问题6. 事务隔离级别7. 总结 1. 前言 事务是数据库管理系统中非常重要的概念,本文主要介绍的是事务的四大特性,并发事务可能引发的问题以及事务
2023-08-17

MySQL事务

一、事务的概念事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行
MySQL事务
2022-01-22

MySQL——事务

事务:指一组SQL语句 回滚:指撤销指定SQL语句的过程 提交:将未存储的SQL语句结果写入数据库表 保留点:事务处理过程中设置的临时占位符,可以对它发布回退 事务的四大特性 原子性:事务中所有的操作是不可再分割的原子单位。事务中所有操作要么全部执
MySQL——事务
2018-05-27

编程热搜

目录