创建表

CREATE TABLE `test1` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

终端1

--T1时刻

BEGIN;

--行级锁 id=1 的记录

select * from test1 where id=1 for update ;

--T3时刻

--更新 id=2 的记录

update test1 set id=id where id=2;

终端2

--T2时刻

BEGIN;

--行级锁 id=2 的记录

select * from test1 where id=2 for update ;

--T4时刻

--更新 id=1 的记录

update test1 set id=id where id=1;

运行结果

update test1 set id=id where id=1

> 1213 - Deadlock found when trying to get lock; try restarting transaction

> 时间: 0.002s

分析

终端一在T1时刻 test1 表的id=1的记录加了排它锁

终端二在T2时刻 test1 表的id=2的记录加了排它锁

终端一在T3时刻要去更新test1表中id=2的记录,此时该行记录已经加了排它锁,无法进行更新操作,需要等待锁释放

终端二在T4时刻要去更新test1表中id=1的记录,此时该行记录已经加了排它锁,无法进行更新操作,需要等待锁释放

.....

这两个事务相互等待对方的排它锁释放,如此出现了死锁

mysql死锁 简单例子_写一个Mysql死锁的例子相关推荐

  1. java单链表例子_写一个java链表的例子?随便举例说一下。

    展开全部 //单链表类 package dataStructure.linearList; import dataStructure.linearList.Node; //导入单链表结点类 impor ...

  2. mysql视频教程特密码_分享一个MySQL 密码增强插件

    介绍 以前没有太注意MySQL密码安全策略的配置方法,只是人为了将密码设为复杂密码,但是没有找到配置的方法,今天姜承尧的微信公众号正好发布了一篇关于这个的文章,所以在这里也顺便将方法写下来.首先该功能 ...

  3. mysql悲观锁测试_测试一个mysql 悲观锁

    创建一个存储过程 在存储过程中  先查询  一个表  for  update 见代码: DELIMITER $$ DROP PROCEDURE IF EXISTS test_sp1 $$ CREATE ...

  4. mysql的覆盖语句_求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详...

    mysql 查询 select count(*) from t1 where col1 > 0 339074条 select count(*) from t1 where col1 > 0 ...

  5. shell备份mysql思路_写一个shell脚本备份mysql数据库的步骤

    写一个shell脚本备份mysql数据库的步骤 发布时间:2020-05-25 15:47:41 来源:51CTO 阅读:221 作者:三月 下文我给大家简单讲讲关于写一个shell脚本备份mysql ...

  6. 写一个MySql存储过程实现房贷等额本息还款计算(另外附javascript代码)

    写一个MySql存储过程实现房贷等额本息还款计算 MySql存储过程代码如下: DROP procedure IF EXISTS `calc_equal_interest_proc`;DELIMITE ...

  7. mysql权重怎么配置_实现一个简单的mysql带权重的中文全文搜索

    自己在写一个web,希望对数据库做全文检索.但是google了解到,由于中文分词的缘故,mysql只支持英文的全文搜索,想支持中文的,需要各种插件or实现一些比较复杂的机制,而买的虚拟主机并不支持这些 ...

  8. python爬虫下载电影百度文档_写一个python 爬虫爬取百度电影并存入mysql中

    目标是利用python爬取百度搜索的电影 在类型 地区 年代各个标签下 电影的名字 评分 和图片连接 以及 电影连接 首先我们先在mysql中建表 create table liubo4( id in ...

  9. mysql备份到制定目录_写一个脚本定时自动备份mysql到指定目录

    编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天的日期命名)放到/root/data #cd /root #vim mysqlbackup.sh #!/bin/bas ...

最新文章

  1. id文本框适应文字_国家宣布!快递要大降价?个人ID将取代邮政编码
  2. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
  3. 可重入函数与不可重入函数(转)
  4. 【收藏】13个CSS3快速必备开发工具
  5. Azure data studio 跨平台数据库管理工具试用
  6. MVC3 中使用Unity实现依赖注入
  7. mac识别androidUSB调试
  8. 高级JAVA - 多线程之CountDownLatch
  9. ubuntu server设置时区和更新时间
  10. 真正的Go编译器与链接器在哪里?
  11. C++中extern关键字
  12. Python数据挖掘-词频统计-实现
  13. (补充知识)DLL 中 .DEF文件的使用
  14. CountDownLatch和CyclicBarrier 举例详解
  15. Mac OS X 安装ruby环境
  16. javaweb实现不刷新网页更改页面内容
  17. 寻找因数——算法简化
  18. python删除excel指定行_python实现Excel删除特定行、拷贝指定行操作
  19. fone喜获“2018中国企业绩效管理信息化最佳产品奖”
  20. VS2017专业版和企业版下载激活

热门文章

  1. 20172316 2017-2018-2《程序设计与数据结构》第七周学习总结
  2. day64 django django零碎知识点整理
  3. JSLint报错翻译
  4. 结对编程-黄金点游戏之旅[二]
  5. 【VS开发】COM组件技术概述
  6. POJ 3415 (后缀数组)
  7. BugFree在Windows Server 2003+IIS 6+MySQL的配置
  8. [转载] numpy.reshape用法(自用)
  9. [转载] Spring的数据库操作---- Spring框架对JDBC的整合---- spring集成jdbc概述
  10. 数据库Sharding的基本思想和切分策略(转)