热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql事物处理的四大特征和简单用法

*什么是事物,事物就是要么同时成功,要么同时失败例如:张三给了李四一百块钱,张三账户的钱会少一百,李四的钱会多一百其实可以看成两条sql语句,一句是张三账户减一百,另一句是李四账户

/*
什么是事物,事物就是要么同时成功,要么同时失败
例如:张三给了李四一百块钱,张三账户的钱会少一百,李四的钱会多一百
其实可以看成两条sql语句,一句是张三账户减一百 ,另一句是李四账户加一百
说不定有时候,第一句执行成功了,第二句没成功,然后就会出现金额不匹配的问题。
所以有了事物;
事物的四大特征:ACID //首字母
1:(A)原子性:原子(最小单位,不可分割的原子单位),要么成功,要么失败
2:(C)一致性:事物执行后,数据库状态和其他业务规则保持一致,
例如:张三和李四的账户,无论转账成功与否,两个账户中的总金额应该是不变的
3:(I)隔离性:是指并发操作中,不同事物之间应该隔离开来,使每个并发中的事物不会相互干扰
px;说的我自己也不是很能看懂,我也不怎么明白这句话的意思
4:(D)持久性:一旦提交事物,它对系统的影响是持久性的
例如:一旦提交,会从内存中写到数据库中,可以随时查到
*/
/*
步骤:1:关闭mysql的自动提交
2:开始事物语句
3:mysql语句
4:结束事物语句
*/

-- 首先需要关闭 自动提交

SHOW VARIABLES LIKE 'auto%'
SET autocommit=off;
-- transaction的意思是事物
-- 合起来是开始一个事物
START TRANSACTION;
-- 中间写sql语句(我写的是转账,一个人减钱3,一个人加钱)
UPDATE table3
SET mOney=money-100
WHERE NAME='starry';
-- 可以加回滚点,也可以不加
-- savepoint的意思是保存点的意思。
-- 加上之后可以在程序执行中有问题的时候,数据在这个位置以前的都会执行
SAVEPOINT a;
UPDATE table3
SET mOney=money+100
WHERE NAME='alex';
-- 提交事务(成功)
COMMIT;
-- 提交事物(失败)(我这里写的是失败后返回a保存点,也可以不写a)
ROLLBACK TO a;

starry.


推荐阅读
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • Java连接MySQL数据库的方法及测试示例
    本文详细介绍了如何安装MySQL数据库,并通过Java编程语言实现与MySQL数据库的连接,包括环境搭建、数据库创建以及简单的查询操作。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文详细介绍了MySQL InnoDB存储引擎中的Redo Log和Undo Log,探讨了它们的工作原理、存储方式及其在事务处理中的关键作用。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文介绍如何通过mysqladmin ext命令监控MySQL数据库的运行状态,包括性能指标的实时查看和分析。 ... [详细]
  • SQL查询与事务管理:深入解析
    本文详细介绍了SQL查询的基本结构和高级特性,包括选择、分组查询以及权限控制等内容,并探讨了事务管理中的并发控制策略,旨在为数据库管理员和开发人员提供实用指导。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 在使用 MySQL 6.0.x 及以上版本的 JDBC 驱动时,若未正确配置 `serverTimezone` 参数,可能会导致连接异常。本文探讨了这一问题的原因及解决方法。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
author-avatar
猪猪爱tai旸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有