美文网首页
MySQL事务中修改的实验

MySQL事务中修改的实验

作者: MacDonald | 来源:发表于2019-08-17 11:44 被阅读0次

如果A或B在事务期间涉及到同一行的增删改,另一个事务都会等待。
现在有2行(1,2),如果A修改了1,B修改了2。现在A要修改2(先提交),B要修改1(后提交),此时B会因为死锁直接报异常回滚,由A对1、2行做修改。

用户A:
mysql> update account set count = 800 where id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> update account set count = 100 where id = 1;
Query OK, 1 row affected (2.08 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> select * from account;
+----+-------+
| id | count |
+----+-------+
|  1 |   100 |
|  2 |   800 |
|  3 |  1000 |
+----+-------+
3 rows in set (0.00 sec)
用户B:
mysql> update account set count = 800 where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from account;
+----+-------+
| id | count |
+----+-------+
|  1 |   800 |
|  2 |   800 |
|  3 |  1000 |
+----+-------+
3 rows in set (0.00 sec)

mysql> update account set count = 8000 where id = 2;
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

相关文章

  • MySQL事务中修改的实验

    如果A或B在事务期间涉及到同一行的增删改,另一个事务都会等待。现在有2行(1,2),如果A修改了1,B修改了2。现...

  • 25、MySQL 事务隔离级别?

    MySQL 事务隔离级别? 1、READ UNCOMMITTED(未提交读):事务中的修改,即使没有提交,...

  • 数据库基础知识

    MySQL事务 MySQL事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都执行修改,要...

  • MySQL的隔离级别

    MySQL的四种隔离级别 READ UNCOMMITTED(未提交读) 事务中的修改即使没有提交,对其他事务也都是...

  • mysql事物隔离机制

    Mac系统mysql设置事务隔离级别 事务隔离级别指的是在处理同一个数据的多个事务中,一个事务修改数据后,其他事务...

  • 6、mysql事务测试

    6.1 文章目的 在mysql中创建数据,依据该数据,对mysql各个事务隔离级别进行实验。 6.2 打开mysq...

  • Redis事务锁CAS实现以及深入误区

    Redis中的事务 Redis的事务没有mysql那么的丰富,但在JAVA web的开发过程中利用mysql事务锁...

  • 第三弹:MySQL事务和锁

    第三弹:MySQL事务和锁 事务特点:ACID 未提交读:事务A可以读取到事务B已修改但未提交的数据读已提交RC:...

  • mysql允许所有ip访问

    1、修改mysql中user表把host 改成% 重启mysql服务 2、修改mysql中db表把host修改成%

  • 10-事务

    事务基础 什么是事务MySQL 中的事务主要用于处理操作量大,复杂度高的数据。MySQL 中只有使用了 Innod...

网友评论

      本文标题:MySQL事务中修改的实验

      本文链接:https://www.haomeiwen.com/subject/vbmsaqtx.html