环境介绍:

用户test01 创建表tab01,用户test02创建表tab02。Test01 更新tab01不提交,test02 更新表tab02不提交。然后test01 更新test02下的表tab02,此时有锁阻塞、锁等待情况发生。接着test02 更新test01下的tab01,那么此时就会有 test01、test02 都在等待对方的资源,但是资源无法释放,满足死锁条件死锁产生!

实施步骤

SQL> create user test01 identified by test01;

User created.

SQL> create user test02 identified by test02;

User created.

SQL> grant create session to test01, test02

Grant succeeded.

SQL> grant resource to test01,test02;

Grant succeeded.

SQL> grant all on test02.tab02 to test01;

Grant succeeded.

SQL> grant all on test01.tab01 to test02;

Grant succeeded.

SQL> conn test01/test01

Connected.

SQL> create table tab01 (id number);

Table created.

SQL> insert into tab01 values(01);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from tab01;

ID

----------

1

SQL> conn test02/test02

Connected.

SQL> create table tab02 (id number);

Table created.

SQL> insert into tab02 values(02);

1 row created.

SQL> select * from tab02;

ID

----------

2

会话1

SQL> update tab01 set id=id*1;

1 row updated.

会话2

SQL> conn test02/test02

Connected.

SQL> update tab02 set id=id*1 ;

1 row updated.

会话2

SQL> update test01.tab01 set id=id*1;

此时该事务被hang住

会话1

SQL> update test02.tab02 set id=id*1;

update test02.tab02 set id=id*1

*

ERROR at line 1:

ORA-00060: deadlock detected while waiting for resource

最新文章

  1. Scala中Iterator允许执行一次
  2. linux远程登录(Telnet、SSH)
  3. Thread join
  4. 【洛谷P1351】联合权值
  5. php类型转换以及类型转换的判别
  6. Sublime搭建nodejs环境(windows)
  7. VC++创建、调用dll的方法步骤
  8. STL 源代码剖析 算法 stl_algo.h -- lower_bound
  9. vmware workstation11虚拟机破解版(附安装教程) 32/64位
  10. FineUIMvc 常见问题及解决办法
  11. sqlserver2008 T_SQL篇
  12. Hystrix 学习使用
  13. IntelliJ IDEA的破解方法
  14. C++ 继承与派生
  15. Jmeter-----邮件观察仪
  16. Day11作业及默写
  17. Ansible Playbook Roles and Include Statements
  18. 数据库之python操作mysql
  19. postgresql 数据库无法启动
  20. Echart自定义属性3

热门文章

  1. 哟哟哟,JAVA组装的聊天室,最简单的实现
  2. Qt 文件处理(readLine可以读取char[],并且有qSetFieldWidth qSetPadChar 等全局函数)
  3. VS2010安装Visual Assist
  4. zoj3229 Shoot the Bullet(有源汇有上下界的最大流)
  5. Qt入门(11)——Qt插件
  6. HNOI 2016 省队集训日记
  7. 生成树的计数(基尔霍夫矩阵):UVAoj 10766 Organising the Organisation SPOJ HIGH - Highways
  8. datagridview bindingsource
  9. JavaScript中的运动数学函数(持续更新)
  10. 路由器刷机常见第三方固件及管理前端种类(OpenWrt、Tomato、DD-Wrt)