首页 > 数据库 >SQL--事务

SQL--事务

时间:2024-10-05 10:12:19浏览次数:8  
标签:事务 transaction -- isolation 查询 Read session SQL

事务 INNODB

银行操作系统 用户A ==> 用户B

一个整体 事务 而言 要么全部执行成功 要么全部执行失败

begin; 开启事务,添加动作
rollback; #回滚
commit; # 提交

事务:
1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。

2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,
事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。

3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,
这样每个事务都感觉不到有其他事务在并发地执行

4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

事务隔离级别
事务的问题 :
脏读 一个事务读到另外一个事务还没有提交的数据 事务A进行修改操作,事务B进行查询操作 事务B查询到了事务A未提交的数据

不可重复读 一个事务读取同一条数据,查询出两次不同的结果
事务A查询操作 101 事务B 101 进行修改(提交了) ,但是事务A又进行了一次查询101,发现两次查询数据不同

幻读: 事务A查询数据108的时候 发现这个数据在表中不存在, 事务B 咋做108的添加,进行了事务提交,事务A做108的添加,报错,
但是事务A查询的时候 ,这个108的数据又没有

查看事务隔离级别

SELECT @@transaction_isolation;

设置事务隔离级别 session 当此会话 global 全局

set session transaction isolation level Read Uncommitted
set session transaction isolation level Read Committed
set session transaction isolation level Repeatable Read (默认)
set session transaction isolation level Serializable

4个隔离权限,权限等级越高,安全性越高 效率越低
脏读 不可重复读 幻读

Read Uncommitted 出现 出现 出现

Read Committed 不会 出现 出现

Repeatable Read 不会 不会 出现

Serializable 不会 不会 不会

标签:事务,transaction,--,isolation,查询,Read,session,SQL
From: https://www.cnblogs.com/taketomyheart/p/18447650

相关文章

  • 【二分】华华给月月准备礼物
    https://ac.nowcoder.com/acm/contest/22353/F注意点是count+=length/mid,在题目中,count+=length/mid的含义是计算每根木棍可以被裁剪成多少段长度为mid的木棍。这里的整除是指length/mid,它计算的是在给定的木棍长度length中,最多可以切出多少段长度为mid的完整......
  • SQL--查询
    CREATETABLEemp(idINTAUTO_INCREMENTPRIMARYKEY,empnameVARCHAR(100),empageINT,job_positionVARCHAR(100),salaryDECIMAL(10,2),hire_dateDATE,manageridINT);INSERTINTOemp(empname,empage,job_position,salary,hire_date,managerid)VALUES(�......
  • A_H_README_TO_RECOVER勒索恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:A_H_README_TO_RECOVER勒索恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]有客户mysql数据库被黑(业务数据库被删除),创建了一个A_H_README_TO_RECOVER库[[email protected]......
  • 2024.10.4(周五)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>工资核算信息</title><style>/*整体页面布局和样式*/......
  • 2024.10.7(周一)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>车间班组</title><style>/*整体页面布局和样式*/......
  • 《代码大全》阅读笔记1(2024.10.4)
    第一章:引言软件构建的艺术:介绍了软件开发的复杂性,以及编写高质量代码的重要性。强调了良好的编码习惯不仅能提高代码的可读性和可维护性,也能降低后期的开发成本。第二章:软件构建的哲学质量的重要性:讨论了软件质量的定义,强调高质量软件不仅包括功能的正确性,还包括可维护性、......
  • 2024.9.30(周一)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>产品批次</title><style>/*整体页面布局和样式*/......
  • 2024.10.2(周三)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>生产工序信息</title><style>/*整体页面布局和样式*/......
  • 2024.10.1(周二)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>生产制令</title><style>/*整体页面布局和样式*/......
  • 2024.10.3(周四)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>质量检验信息</title><style>/*整体页面布局和样式*/......