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

三分钟掌握MySQL中事务的处理

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

三分钟掌握MySQL中事务的处理

本文主要给大家介绍MySQL中事务的处理,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL中事务的处理吧。

步骤:

1.开启事务 start transaction

当我们开启一个事务的时候,我们对sql的操作都发生在内存中,但是没有真正的反馈到数据库磁盘的文件中!

2.回滚 rollback

回滚,就是恢复到事务开启之前的最原始的状态!

注意:回滚操作会自动的关闭一个事务,如果想再次执行事务,需要重新开启事务!

3.提交 commit

事务的基本原理

普通的执行,之所以是立即执行并生效,因为默认的,MySQL对sql语句的执行是自动提交的!所以,开启一个事务的本质,就是关闭了以前的自动提交的功能,而是由用户手动提交(利用commit语句)!

总结事务的步骤:

1,  开启事务

2,  如果执行成功,就提交commit

3,  如果有任何一条sql语句执行失败,则回滚rollback!

事务处理最典型的就是借还钱。下面以张三向李四还1000元为例

首先查看数据库中各自的钱数

三分钟掌握MySQL中事务的处理

下面是处理还钱事务的代码:


<?php 



echo "<meta charset=utf-8>";

// 1 连接数据库
$link = @mysql_connect('localhost','root','') or die('连接数据库失败');
mysql_select_db('test',$link);mysql_query('set names utf8');

// 2  开启事务
mysql_query("start transaction");
//设置一个变量,用来判断所有sql语句是否成功
$flag = true;

// 2.1执行事务中的一组sql语句

// 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'";
$res = mysql_query($sql);
if (!$res) {  
    //若sql语句执行失败,把$falg设置为false    $flag = false; }

//张三的money-1000
$sql = "update pdo set money=money-1000 where name='张三'";
$res = mysql_query($sql);
if (!$res) {  
    //若sql语句执行失败,把$falg设置为false    $flag = false; }

// 2.2 判断事务是否执行成功
if ($flag) {  
    //所有sql语句执行成功,把sql语句提交    mysql_query('commit');    echo "还钱成功!"; }else{  
    // 如其中一条执行失败,则回滚到事务开启之前的状态    mysql_query('rollback');    echo "还钱失败!"; }


结果:

三分钟掌握MySQL中事务的处理

三分钟掌握MySQL中事务的处理

下面,我们故意把其中一个字段写错,看看事务是否正常处理,数据库中的钱数是否有变化!

// 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'";  //把moeny字段错写成mone

结果:

三分钟掌握MySQL中事务的处理

三分钟掌握MySQL中事务的处理

结果是还钱失败,并且数据库中各自的钱数没有变化,说明当某一条语句未执行成功时,事物不会提交,而会回滚,把数据恢复到开始事务之前的原始状态,这也是使用事务的作用,即只有当事务中所有sql语句全部执行成功,事务才会提交,否则会回滚!

以上就是MySQL中事务的处理的详细内容,更多请关注亿速云其它相关文章!

免责声明:

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

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

三分钟掌握MySQL中事务的处理

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

下载Word文档

猜你喜欢

Spring事务专题(三)事务的基本概念,Mysql事务处理原理

前言本专题大纲:专栏大纲我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,因为二者毕竟没有什么实际关系,实际上如果你对MySQL的事务原理不感兴趣也可以直接跳过本文,等待接下来两篇应用及源码分析,不过我觉得
Spring事务专题(三)事务的基本概念,Mysql事务处理原理
2017-03-18

优化数据库事务处理:技术同学需要掌握的MySQL设计规约!

优化数据库事务处理:技术同学需要掌握的MySQL设计规约!随着互联网的快速发展,数据量的爆炸增长使得数据库的设计和性能变得尤为重要。作为一个关系型数据库管理系统,MySQL在互联网应用中得到了广泛的应用。在MySQL数据库的使用过程中,事务
2023-10-22

如何实现MySQL中的事务处理?

如何实现MySQL中的事务处理?事务是数据库中重要的概念之一,能够保证数据的一致性和完整性,确保在并发操作中数据的正确性。MySQL作为一种常用的关系型数据库,也提供了事务处理的机制。一、事务的特点事务具有以下四个特点,通常用ACID来概括
2023-10-22

ORM框架中的MySQL事务处理机制

ORM(Object-Relational Mapping,对象关系映射)框架是一种在面向对象编程语言中实现数据库操作的方法。它允许开发者以面向对象的方式操作数据库,而不是直接编写SQL语句。在ORM框架中,MySQL事务处理机制是一个重要
ORM框架中的MySQL事务处理机制
2024-10-05

如何实现MySQL中事务处理的语句?

如何实现MySQL中事务处理的语句?在数据库操作中,事务处理是非常重要的一部分,它可以确保一系列的操作要么全部执行,要么全部不执行。MySQL中的事务处理可以通过以下示例代码来实现。首先,让我们创建一个示例表格来演示事务处理的语句:CREA
如何实现MySQL中事务处理的语句?
2023-11-09

MySQL插入锁与数据库分布式事务的处理

MySQL中的插入锁是一种锁机制,用于在插入数据时保护数据的完整性。当一个事务在插入数据时获取了插入锁,其他事务就无法插入相同的数据,直到第一个事务释放了锁。当涉及到数据库分布式事务处理时,MySQL中的插入锁可以帮助确保数据的一致性。在
MySQL插入锁与数据库分布式事务的处理
2024-08-14

MySQL中事务处理的常见问题和解决方案

MySQL中事务处理的常见问题和解决方案在数据库操作中,事务处理是非常重要的,它可以确保数据库操作的一致性和完整性。然而,在MySQL中进行事务处理时,常常会遇到一些问题。本文将介绍常见的MySQL事务处理问题,并提供相应的解决方案。问题一
2023-10-22

HBase的分布式事务处理在复杂业务场景中的应用

HBase分布式、可扩展的NoSQL数据库,在复杂业务场景中,其分布式事务处理能力对于保证数据一致性和完整性至关重要。以下是关于HBase的分布式事务处理在复杂业务场景中的应用:HBase的分布式事务处理机制HBase通过两阶段提交(2
HBase的分布式事务处理在复杂业务场景中的应用
2024-10-22

MySQL分布式事务处理与并发控制的项目经验解析

MySQL分布式事务处理与并发控制的项目经验解析近年来,随着互联网的迅猛发展和用户数量的不断增加,对于数据库的要求也日益提高。在大型分布式系统中,MySQL作为最常用的关系型数据库管理系统之一,一直扮演着重要的角色。但是,随着数据规模的增大
MySQL分布式事务处理与并发控制的项目经验解析
2023-11-02

队列的轮询和负载均衡在PHP与MySQL中的任务分发和消息处理的应用

随着互联网的快速发展,需要处理大规模任务和消息处理的需求也随之增加。而队列的轮询和负载均衡成为了解决这类问题的有效手段之一。在PHP和MySQL应用中,队列的轮询和负载均衡可以用于任务分发和消息处理,本文将具体介绍其应用,并给出相应的代码示
2023-10-21

编程热搜

目录