mysql学习---事务

1、的业务操作,被事务管理,那么这些步骤要么全部成功,要么全部失败

2、操作

开启事务

sql 复制代码
mysql> start transaction;

回滚,任何一步执行失败则回滚,回滚到事务开启之前

sql 复制代码
mysql> rollback;

提交,mysql事务会默认提交dml语句,实现数据持久化更新,如果写了开启事务,则需要手动提交,否则会默认回滚

sql 复制代码
mysql> commit;

查询是否是默认提交

sql 复制代码
mysql> select @@autocommit;--1是默认提交,0是手动提交
mysql> set @@autocommit=0;--修改提交方式为手动提交

3、事务的四大特征

1)原子性:要么全部成功,要么全部失败

2)持久性:事务被提交或回滚后,数据库会持久化的保存数据

3)隔离性:多个事务之间相互独立

4)一致性:事务操作前后,数据总量不变

4、事务的隔离级别

多个事务操作同一批数据,可能会产生问题,设置不同的数据隔离级别,可以解决这些问题

存在问题

1)脏读:一个事务读取到另一个事务未提交的数据

2)不可重复读:在同一个事务中,两次读取的数据不一样,也成虚读

3)幻读:一个事务去操作数据表中所有的记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改

隔离级别

sql 复制代码
mysql> read uncommited;--读未提交,产生问题123
mysql> read commit;--读已提交,产生问题23
mysql> repeatable read;--可重复读,产生问题3,mysql默认的隔离级别
mysql> serializable;--串行化,会锁表,一个事务操作时,不允许另一个事务操作(查询操作也不允许)
mysql> SELECT @@transaction_isolation;--查看会话隔离级别
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;--设置数据库隔离级别
相关推荐
~kiss~34 分钟前
A Survey of On-Policy Distillation for LLMs 学习(一)
学习
小杨小杨、努力变强!2 小时前
python学习笔记
笔记·学习
Decay__5 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
Star(up up up)8 小时前
Redis Windows 安装教程:使用Windows 的 Redis 压缩包
redis·笔记·学习·程序人生·云原生·学习方法·改行学it
乌暮10 小时前
Spring AOP 与 Spring 事务:用大白话彻底理解原理与实践
java·数据库·spring boot·后端·sql·学习·spring
小此方11 小时前
Re:Mysql数据库基础篇(十二):什么是事务、事务解决了什么问题、事务的四大属性、事务的操作方式
数据库·mysql
csdn_aspnet11 小时前
macOS 10 、Docker 玩轉 MySQL
运维·mysql·macos·docker·容器·mac
王中阳Go12 小时前
100 件货卖出 116 件,库存停在 -16
后端·mysql·go
nice_lcj52015 小时前
MySQL 存储引擎入门:InnoDB 和 MyISAM 到底怎么选
java·数据库·mysql·面试·innodb·存储引擎·myisam
蒸蒸yyyyzwd15 小时前
从邓明学习的后端笔记
笔记·学习