首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL事务部分回滚-回滚到指定保存「建议收藏」

我们可以在mysql事务处理过程中定义保存(SAVEPOINT),然后回滚到指定的保存前的状态。 定义保存,以及回滚到指定保存前状态的语法如下。...定义保存—SAVEPOINT 保存点名; 回滚到指定保存—ROLLBACK TO SAVEPOINT 保存点名: 下面演示将向表user中连续插入3条数据,在插入第2条数据的后面定义一个保存,最后看看能否回滚到此保存...事务开始 mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) 3、向表user中插入2条数据 mysql> INSERT INTO user VALUES...test以后插入的记录没有显示了,即成功团滚到了定义保存test前的状态。...利用保存可以实现只提交事务中部分处理的功能。

2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL事务知识盘点

    本篇内容包括:MySQL 事务概念、MySQL 事务隔离级别以及MySQL 事务隔离的实现 一、MySQL 事务概念 一般来说, MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的...假设一个网购付款的操作,用户付款后要涉及到订单状态更新、扣库存以及其他一系列动作,这就是一个事务,如果一切正常那就相安无事,一旦中间某个环节异常,那整个事务就要回滚,总不能更新了订单状态但是不扣库存吧...读提交事务隔离级别是大多数流行数据库的默认事务隔离界别,比如 Oracle,但是不是 MySQL 的默认隔离界别。...加锁的过程要分索引和无索引两种情况,比如下面这条语句 update user set age=11 where id = 1 id 是这张表的主键,是索引的情况,那么 MySQL 直接就在索引数中找到了这行数据...这是索引的情况,如果 age 不是索引列,那么数据库会为整个表加上间隙锁。所以,如果是没有索引的话,不管 age 是否大于等于30,都要等待事务 A 提交才可以成功插入。

    32220

    阿里二面:了解 MySQL 事务底层原理

    可以说是每个 Java 程序员必会的技能之一,作为 Java 的高级进阶必备技能MySQL 的调优和底层原理必然是需要知道的。...本文我们抛开“热门”的话题,来和大家一起来聊一聊比较冷门但比较重要的技术MySQL 事务的底层原理 这事情还得从头说起 首先大家需要知道的是 MySQL 是支持事务并发执行的,这又回到了最原始的问题了...假设现在事务 A 开启了事务,将值改为 A 事务 A 还在活跃中,这个时候事务 B 开启了,将值改为 B 此时事务 A 和事务 B 都还在活跃中,这个时候事务 C 开启了,并将值改为 C 看到这里是不是稍微感觉了...,一对比发现不就是自己修改的值?...然后继续顺着 undo log 日志链往下找,找到了事务 ID 为 5 的记录,发现和自己的一样,那这个不就是需要查找的结果?也就是说 事务 B 查找到的结果是 B。

    1.1K20

    MySql 三大知识——索引、锁、事务

    注意:小表使用全表扫描更快,中大表才使用索引。超级大表索引基本无效。...锁机制 关于 Mysql 的锁,各种概念就会喷涌而出,事实上,锁好几种维度,我们来解释一下。 1....默认的读操作,上锁? 默认是 MVCC 机制(“一致性非锁定读”)保证 RR 级别的隔离正确性,是不上锁的。...一张经典的图: 这里个注意,关于幻读,在数据库规范里,RR 级别会导致幻读,但是,由于 Mysql 的优化,MySql 的 RR 级别不会导致幻读:在使用默认的 select 时,MySql 使用...而 RR 的事务从始至终都是使用同一个 Read View。 RR 不会发生幻读的原因: 上面说过了。 那 RR 和 Serializble 什么区别呢?答:丢失更新。本文关于锁的部分已经提到。

    72020

    你真的懂MySQL事务隔离机制

    事务启动时的视图可认为是静态的,不受其他事务更新影响。 4 事务隔离的实现 - undo log MySQL的每条记录在更新时都会同时记录一条回滚操作。...当前值4,但在查询这记录时,不同时刻启动事务不同read-view。 在视图A、B、C,该记录的值分别是1、2、4,同一记录在系统中可存在多版本,即多版本并发控制(MVCC)。...6 事务启动方式 开发同学并不是有意长事务,通常误用。其实MySQL事务启动方式以下几种: 6.1 显式启动事务 begin 或 start transaction。...比如,你每天0做一次全量备份,而要恢复出一个到昨天晚上23的备份 一周一备 最坏情况就要应用一周的binlog啦! 系统的对应指标是RTO(恢复目标时间)。...确认是否不必要的只读事务。有些框架不管什么语句先begin/commit框。有些是业务并没有这需要,但也把好几个select语句放到事务。这种只读事务可以去掉。

    1.1K10

    MySql 三大知识——索引、锁、事务

    注意:小表使用全表扫描更快,中大表才使用索引。超级大表索引基本无效。...锁机制 关于 Mysql 的锁,各种概念就会喷涌而出,事实上,锁好几种维度,我们来解释一下。 1....默认的读操作,上锁? 默认是 MVCC 机制(“一致性非锁定读”)保证 RR 级别的隔离正确性,是不上锁的。...这里个注意,关于幻读,在数据库规范里,RR 级别会导致幻读,但是,由于 Mysql 的优化,MySql 的 RR 级别不会导致幻读:在使用默认的 select 时,MySql 使用 MVCC 机制保证不会幻读...而 RR 的事务从始至终都是使用同一个 Read View。 RR 不会发生幻读的原因: 上面说过了。 那 RR 和 Serializble 什么区别呢?答:丢失更新。本文关于锁的部分已经提到。

    88240

    MySQL 死锁后事务无法回滚是真的

    MySQL 在处理事务的和存储过程的建议,或者说民间使用MySQL的建议,不建议大事务,不建议存储过程大量的在业务中使用的这个‘口耳相传’的论调,找寻到一些最初MySQL 被设计出来的最初的初衷。...所以数据库本身是定位的,不是一个数据库走天下,不同的数据库定位的业务不同,定位的使用者和业务的逻辑不同。...但是 但是 但是 MySQL 可以解决这个问题,我们参数可以解决。这点和SQL SERVER 是一样的。...A 和 B 事务代码,事务A 中的插入是没有生效的,从而证明MySQL 完全可以实现在死锁后死锁事务的全部回滚。...顺便打一个广告 2023-08-22日晚8,大家可以了解PolarDB 了解一下,我们请来PolarDB的基础架构研发负责人 来回答大家对于PolarDB数据库的问题,吃不了亏,上不了当 !

    39341

    面试官:MySQL事务隔离级别你了解

    未提交读 - 读到其它事务未提交的数据(最新的版本) 错误现象:脏读、不可重复读、幻读现象 提交读(RC) - 读到其它事务已提交的数据(最新已提交的版本) 错误现象:不可重复读、幻读现象 使用场景...:希望看到最新的有效值 可重复读(RR) - 在事务范围内,多次读能够保证一致性(快照建立时最新已提交版本) 错误现象:幻读现象,可以用加锁避免 使用场景:事务内要求更强的一致性,但看到的未必是最新的有效值...串行读 - 在事务范围内,仅有读读可以并发,读写或写写会阻塞其它事务,用这种办法保证更强的一致性 错误现象:无 1、脏读现象 tx1 tx2 set session transaction isolation...,两次读取的结果不一致,当然,此时 tx2 的事务已提交 3、幻读现象 tx1 tx2 set session transaction isolation level repeatable read;...values(3, 1000); /* 阻塞 */ insert into account values(3, 5000); 在 for update 这行语句执行时,虽然此时 3 号账户尚不存在,但 MySQL

    17620

    程序员,知道Mysql事务ACID的原理?

    但是稍微涉及细节一,这四大特性在数据库中的实现原理是怎么样的?那就没有几个人能够答得上来了。因此,我们这篇文章着重讨论一下四大特性在Mysql中的实现原理。...接下来的其他操作或故障不应该对其任何影响。 如果无法保证持久性会怎么样? 在Mysql中,为了解决CPU和磁盘速度不一致问题,Mysql是将磁盘上的数据加载到内存,对内存进行操作,然后再回写磁盘。...毕竟一个页面16kb大小,你只改其中一东西,就要将16kb的内容刷入磁盘,听着也不合理。 毕竟一个事务里的SQL可能牵涉到多个数据页的修改,而这些数据页可能不是相邻的,也就是属于随机IO。...问题四: Mysql怎么保证隔离性的? OK,利用的是锁和MVCC机制。还是拿转账例子来说明,一个账户表如下 表名t_balance ?...但是说明一下,在事务隔离级别为读已提交(Read Commited)时,一个事务能够读到另一个事务已经提交的数据,是不满足隔离性的。

    43620

    程序员,知道Mysql事务ACID的原理?

    但是稍微涉及细节一,这四大特性在数据库中的实现原理是怎么样的?那就没有几个人能够答得上来了。因此,我们这篇文章着重讨论一下四大特性在Mysql中的实现原理。...接下来的其他操作或故障不应该对其任何影响。 如果无法保证持久性会怎么样? 在Mysql中,为了解决CPU和磁盘速度不一致问题,Mysql是将磁盘上的数据加载到内存,对内存进行操作,然后再回写磁盘。...毕竟一个页面16kb大小,你只改其中一东西,就要将16kb的内容刷入磁盘,听着也不合理。 毕竟一个事务里的SQL可能牵涉到多个数据页的修改,而这些数据页可能不是相邻的,也就是属于随机IO。...问题四: Mysql怎么保证隔离性的? OK,利用的是锁和MVCC机制。还是拿转账例子来说明,一个账户表如下 表名t_balance ?...但是说明一下,在事务隔离级别为读已提交(Read Commited)时,一个事务能够读到另一个事务已经提交的数据,是不满足隔离性的。

    51620

    MySQL事务未提交redolog能持久化到磁盘

    问题来源 全文字数 : 2k ⏳ 阅读时长 : 5min 关键词 : redolog、事务未提交、持久化 今天的文章内容围绕一位网友的评论去展开,在看完小许文章【结合MySQL更新流程看 undolog...redo log可能存在的位置 没看过看头提到的文章建议返回去看下,这里再进行下核心知识的回忆。 redo log 其实记录的是此次事务「完成后」的数据状态,记录的是更新之后的值。...事务未提交写磁盘的情况 看了redo log可能存在的状态和位置,以及写盘策略,那跟事务是否提交redo log能否写入磁盘啥关系呢?...举个栗子,事务 A 执行到一半,此时 redolog 到 redolog buffer 中,这时候另外一个事务 B 提交,事务 B 要把 redolog buffer 里的日志全部持久化到磁盘,这时候就会带上是不是事务...欢迎赞 、收藏 、关注 三连支持一下~ 知道的越多,不知道的也越多,我是小许,下期见~

    44011

    探究 | Elasticsearch不支持事务什么好的弥补方案

    1、问题 源自星球同学的提问:es如何与hive或mysql结合使用?es不支持事务什么好的弥补方案?...3、Elasticsearh不支持事务 一些支持ACID数据存储的数据库包括:Postgres, SQLite, Oracle, MySQL (with InnoDB), and MongoDB (4.0...没错,Elasticsearch一个快照/恢复功能,但是这个过程只会在数据丢失的情况下部分恢复。 除非您在其他系统对数据有额外的备份存储,否则最新快照和中断之间的更新将会丢失。...数据完整性:ElasticSearch支持保存数据原文。 5、Elasticsearch不支持的场景 不支持事务,如前所述。...Mysql中存储全部字段,利用ACID事务特性。 通过关联字段建立关联,比如:news_id在ES和mysql中要有相同的值。

    3.5K31

    MySQL的4种事务隔离级别你还不清楚

    表的结构如下: 然后往表中插入两条数据,插入后结果如下: 为了说明问题,我们打开两个控制台分别进行登录来模拟两个用户(暂且成为用户 A 和用户 B 吧),并设置当前 MySQL 会话的事务隔离级别。...read uncommitted,即便是事务没有 commit,但是我们仍然能读到未提交的数据,这是所有隔离级别中最低的一种 那么这么做什么问题?...那么这么做什么问题? 那就是我们在会话 B 同一个事务中,读取到两次不同的结果。这就造成了不可重复读,就是两次读取的结果不同。这种现象叫不可重复读。...三. repeatable read(可重读)---MySQL 默认的隔离级别 现在有个需求,就是老板说在同一个事务中查询结果必须保持一致,如果你是数据库,你会怎么做?数据库是这么做的。...结论三: 当我们将当前会话的隔离级别设置为 repeatable read 的时候,当前会话可以重复读,就是每次读取的结果集都相同,而不管其他事务有没有提交。 什么问题

    44810

    简单一,小程序是什么鬼?

    进去之后显示的就是小程序的历史列表。有的人在发现栏最下面没有小程序的主入口,说明你从来就没有使用过小程序。当你通过别人的分享,或者扫二维码使用过一次之后就会显示出来了。...所以,避免审核通不过的关键就在于是不是原创、分享对微信的用户有没有伤害。 4、公众号 我们都知道微信公众号体系非常牛,很庞大,特别是订阅号,现在的订阅号大号早就已经赚得盆满钵满了。...有的小伙伴在附近的小程序里会看到有的小程序的位置下面写得有“推广”两个字,这个小程序其实并不在你的附近,而是用了腾讯广通做了付费推广。...如果有好的小程序项目,可以尝试广通付费推广。 6、线下扫码 这年头线上的流量是变得越来越贵了,所以相对而言线下流量价格就变得便宜了。...『小程序营销系列』 上周看你的流量见底了,有人用流量赚了1000万 这周看 简单一,小程序是什么鬼?? 下周看 那些赚钱赚到手抽筋的小程序是怎么玩的?

    1.3K60
    领券