MySQL中事务是一个最小的不可分割的工作单元,事务能保证一个业务的完整性

一个业务中有多条sql语句,这些sql语句必须同时成功或同时失败,这时需要要事务来保证这个要求。

例如:a从自己的银行卡上转100给b

update user set money=money-100 where name='a';

update user set moeny=money+100 where name='b';

这两个sql语句必须同时成功或同时失败,这就需要事务

MySQL里是自动开启事务和自动提交数据的,这样每执行一个sql语句都会将数据提交到数据库中,这样就完成一个事务

提交到数据库中的记录是不能撤销的,这样如果后面的sql语句执行不了,前面的sql就不能撤回了。

我们可以关闭自动开启事务和自动提交数据,这样我们可以设置一个事务里有多个sql语句,在它们全部执行完时,在向数据库提交数据,这样就能解决sql多个语句同时成功的操作

撤销未提交的sql操作为 rollback

关闭自动开启事务和自动提交数据   set autocommit =0;

开启事务:begin/start transaction;

手动提交数据  :commit

事例:

手动设置事务,关闭自动提交数据功能,我们在cmd上进行的多个sql操作不会将数据提交到数据库中 手动开启事务  begin;

我们在另一个cmd中查看数据库数据没有受其影响

我们手动提交数据commit

这时cmd中的操作记录才被传到数据库,在没有提交前,一个rollback就可以撤销这个事务中所有的sql语句

提交后,数据库才会将库中的数据修改。

事务的四大特性

1:原子性   事务是最小单位,不可拆分

2:一致性   事务中sql语句必须同时成功或同时失败

3:隔离性   不同的事务是不会相互影响的

4:持久性   事务完成提交数据后不能再撤回了。

mysql 一条sql 事务_MySQL的事务相关推荐

  1. mysql 两条sql合并_mysql 如何将两条sql的结果合并到一列,

    想要达到这样的效果 两条sql 只有一个 card.type 条件不一样 0,于1 的区别 , 最后希望结果等于 comp.comp_info_id, comp.comp_name, card.sch ...

  2. mysql的从节点能否执行事务_MySQL执行事务的语法与流程详解

    摘要:MySQL 提供了多种存储引擎来支持事务. MySQL 提供了多种存储引擎来支持事务.支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 ...

  3. mysql链事务_MYSQL 之事务篇

    事务概述 在引入事务之前我们先考虑银行转账的操作: # 从id=1的账户给id=2的账户转账100元 # 第一步:将id=1的A账户余额减去100 UPDATE accounts SET balanc ...

  4. MySQL 一条sql添加多个索引或添加多个列(字段)

    MySQL 一条sql添加多个索引或添加多个列(字段) MySQL 一次添加多个索引 ALTER TABLE  table_name ADD INDEX idx1 ( `aaa`), ADD INDE ...

  5. MySQL一条SQL语句查询多个科目的成绩

    MySQL一条SQL语句查询多个科目的成绩 SELECT pn.name,c.`cname`,SUM(CASE WHEN ps.coid='1' THEN sname END )AS 'domain' ...

  6. mysql innodb禁用事务_MySQL InnoDB事务中锁问题(三)

    试想,事务如果都是串行的,那么就不需要锁了,但是性能肯定没法接受.加锁只是为了提高事务并行度,并且解决并发事务执行过程中引起的脏写.脏读.不可重复读.幻读这些问题的一种解决方案(MVCC算是一种解决脏 ...

  7. mysql数据 锁 隔离级别_MySQL数据库事务各隔离级别加锁情况--read uncommitted篇

    1.目的 1.1 合适人群 1.数据库事务特征我只是背过,并没有很深刻的理解. 2.数据库事务的隔离级别只是了解,并没有深刻理解,也没有在实际工作中体验使用过. 3.经常面试被人问起数据库加锁情况,一 ...

  8. mysql innodb 默认隔离级别_MySQL Innodb 事务隔离级别

    在Mysql中,事务主要有四种隔离级别,今天我们主要是通过示例来比较下,四种隔离级别实际在应用中,会出现什么样的对应现象. Read uncommitted (未提交读) Read committed ...

  9. python执行mysql多个sql语句_mysql -- 一次执行多条sql语句

    最近要做一个软件升级,其中涉及到数据库表字段的变动(新增或删除或修改),所有的关于数据库的变动的sql语句都是存放在Sqlupdate.sql文件中,每次升级的时候都需要执行一次Sqlupdate.s ...

最新文章

  1. 字符“23.00”转成int型!Input string was not in a correct format.
  2. 高通 MSM8K bootloader : SBL1 .
  3. 计算机原理解读图,详细讲解仪器仪表测试系统,结构原理图拿走不谢
  4. 公共钥匙盒(排序CCF)
  5. MS CRM 2011 Form与Web Resource在JScript中的相互调用
  6. linux内核源码剖析 博客,【Linux内存源码分析】页面迁移
  7. JAVA基础学习day25--Socket基础二-多线程
  8. 九九乘法表(Java)
  9. 一个高性能RPC框架的连接管理
  10. worldwind java 教程_科学网—用worldwind java SDK开发应用程序 - 谢安涛的博文
  11. T430s BIOS白名单破解
  12. 微信利用小号和大号的好友聊天(基于wxpy库)
  13. 在Excel数据最后一行下面写入数据的一种方法
  14. 小程序真机调试连接本地服务器进行调试
  15. Linux下system () 函数详解简介
  16. 使用snap安装mosquitto并且进行初步配置
  17. every和some的区别
  18. 觉得还不错的国内外编程技术网站、论坛列表
  19. 常用的国外遥感卫星网站
  20. 基于C++的自动驾驶公交车调度系统

热门文章

  1. 为何需要搭建大数据平台
  2. 大数据分析给企业带来哪些挑战
  3. mysql utf-8转utf8mb4_MySQL UTF8 转为 utf8mb4
  4. 使用QEMU实现vexpress-ca9板卡的linux启动
  5. 小红的真真假假签到题题(构造+思维)
  6. The Suspects(并查集入门)
  7. 在php中默认访问权限修饰符是,php中访问修饰符的知识点总结
  8. 学习C++项目——数据库知识学习(主从原理,分离配置,远程工具只是了解,都没有实现)
  9. large计算机应用,cies - 计算机应用.pdf
  10. 一篇搞定导航守卫(vue-router源码学习)