当前位置: 首页 > 编程笔记 >

浅析MYSQL REPEATABLE-READ隔离级别

云焱
2023-03-14
本文向大家介绍浅析MYSQL REPEATABLE-READ隔离级别,包括了浅析MYSQL REPEATABLE-READ隔离级别的使用技巧和注意事项,需要的朋友参考一下

REPEATABLE-READ 即可重复读,set autocommit= 0或者START TRANSACTION状态下select表的内容不会改变。这种隔离级别可能导致读到的东西是已经修改过的。

比如:

回话一中读取一个字段一行a=1

在回话二里这个字段该行修改a=0,并且提交

回话一中再update这个字段a=0,会发现受影响行数是0,这样就可以根据受影响行数是0还是1判断此次修改是否成功!

这在某些程序里会很有用!

会话1:

mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test.dd where id=1;
+----+------+
| id | aa |
+----+------+
| 1 | 2 |
+----+------+
1 row in set (0.00 sec)

会话2:

mysql> update test.dd set aa=1 where id=1;
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0

会话3:

mysql> select * from test.dd where id=1;
+----+------+
| id | aa |
+----+------+
| 1 | 2 |
+----+------+
1 row in set (0.00 sec)

mysql> update test.dd set aa=1 where id=1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0

此处的受影响行数为0,我们可以根据这个值判断这次update是否成功,这在需要更改某些行的状态位的时候是比较有用的!

 类似资料:
  • 我正在尝试了解SQL Server中的隔离/锁定。 我在读提交隔离级别(默认)中有以下场景 我们有一张桌子。 现在从msdn我明白了 当激发select时,将使用共享锁,因此其他事务无法修改数据(避免脏读)..文档还谈到了行级、页级、表级锁。我想跟着场景走 我想了解的是将获取共享锁的持续时间以及哪个(行、页、表)。 将仅在运行 时获取锁定,或者会获取整整 5 分钟,直到我们到达 COMMIT。

  • 本文向大家介绍Mysql事务隔离级别原理实例解析,包括了Mysql事务隔离级别原理实例解析的使用技巧和注意事项,需要的朋友参考一下 引言 大家在面试中一定碰到过 说说事务的隔离级别吧? 老实说,事务隔离级别这个问题,无论是校招还是社招,面试官都爱问!然而目前网上很多文章,说句实在话啊,我看了后我都怀疑作者弄懂没!因为他们对可重复读(Repeatable Read)和串行化(serializable

  • 问题内容: 我想将隔离级别设置为。如何使用gorm orm for postgres实现此目的。 示例代码: 问题答案: 我在这里有完全一样的问题: 和pg完全一样。

  • 本文向大家介绍Spring事务隔离级别简介及实例解析,包括了Spring事务隔离级别简介及实例解析的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Spring事务隔离级别(solation level)介绍及例子,具体如下。 当两个事务对同一个数据库的记录进行操作时,那么,他们之间的影响是怎么样的呢?这就出现了事务隔离级别的概念。数据库的隔离性与并发控制有很大关系。数据库的隔离级别是数据

  • 问题内容: 也许有人可以帮助我解决Spring(3.1)/ Postgresql(8.4.11)中的事务性问题 我的交易服务如下: Spring配置Webapp包含: 让我们说一个请求“ x”和一个请求“ y”同时执行并到达注释“比较”(方法insertObject)。然后,允许他们两个都插入一个新对象,并提交他们的事务。 为什么我没有RollbackException?据我所知,这就是可序列化等

  • 我想使用eclipse链接设置隔离级别,我尝试了以下两种方法: > java.sql.连接 Database aseLogin setTransationIsolation方法 如您所见,getTransactionSolation()方法的返回值之间存在一些不一致。我的问题是,在这两种情况下真正设置了哪种事务隔离?我知道eclipse链接在默认情况下使用不同的连接进行读写操作,即Database