--=========================

外键引起的死锁:

rollback掉上面session 1和session 2中的sql

--=========================

session 1:

SQL> insert into r values(2);

已创建 1 行。

SQL>

--=======================

session 3:

SQL> select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in

2 (159,128) order by sid;

SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK

---------- -- ---------- ---------- ---------- ---------- ---------- ----------

159 TM 13017 0 2 0 15 0

159 TX 393228 371 6 0 15 0

159 TM 13020 0 3 0 15 0

SQL>

--=======================

session 2:

SQL> insert into r values(2);

已创建 1 行。

SQL>

--=======================

session 3:

SQL> select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in

2 (159,128) order by sid;

SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK

---------- -- ---------- ---------- ---------- ---------- ---------- ----------

128 TM 13017 0 2 0 14 0

128 TX 262168 360 6 0 14 0

128 TM 13020 0 3 0 14 0

159 TX 393228 371 6 0 55 0

159 TM 13020 0 3 0 55 0

159 TM 13017 0 2 0 55 0

已选择6行。

SQL>

--=======================

当我们向子表r中分别通过session 1和2插入数据时,此时发现在r表上家了锁mode是3,在主表

p上加的锁mode是2(RS: row share),此时别没有阻塞,接下来操作主表...

session 1:

SQL> delete from p where id=1;

阻塞...

session 3:

SQL> select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in

2 (159,128) order by sid;

SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK

---------- -- ---------- ---------- ---------- ---------- ---------- ----------

128 TM 13017 0 2 0 332 0

128 TX 262168 360 6 0 332 0

128 TM 13020 0 3 0 332 1

159 TX 393228 371 6 0 373 0

159 TM 13020 0 3 5 373 0

159 TM 13017 0 3 0 29 0

已选择6行。

SQL>

从最后一个字段block=1发现session 1(sid:159)请求的锁mode 5被session 2(sid:128)加在子表(r)

上的3锁阻塞...(上面已经说了mode 3和5不能兼容);

oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

oracle外键死锁,Oracle技术之和外键相关的阻塞和死锁问题总结(二)相关推荐

  1. oracle+cascade=gt;true,mysql数据库主外键级联删除脚本RESTRICT -- CASCADE

    在项目中,我们一般在数据库设计的时候做主外键关联设计,要么就不做.但是这样不符合规范,呵呵. 建立主外键关系的时候,默认是不能级联删除的.而出现往往在删除主表的数据时报错, 需要先删除从表然后再删除主 ...

  2. oracle唯一约束null,Oracle外键约束中NULL的处理

    Oracle的NULL一直是一个有趣的话题,只要存在NULL,就可能会出现意想不到的结果.Oracle在外键中处理NULL约束,采用的方法就和处理唯一约束中明显不同. 前面写过一篇文章,介绍过唯一约束 ...

  3. oracle修改外键值,ORACLE 外键约束修改行为

    Oracle的外键用来限制子表中参考的字段的值,必须在主表中存在.而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作. 在SQL92标准中定义了几种外键改变后,如何处理子表 ...

  4. oracle sql建表外键约束,Oracle外键约束修改行为(一)

    Oracle的外键用来限制子表中参考的字段的值,必须在主表中存在.而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作. 在SQL92标准中定义了几种外键改变后,如何处理子表 ...

  5. oracle主键跟踪,Oracle根据主键查找外键

    需求: 假如以前创建了两个有外键关联的表A和B: create table A(id number(3) primary key, name varchar2(10)); create table B ...

  6. 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等

    使用select   *   from   user_tables   可以查询出所有的用户表. 查所有用户的表在all_tables 主键名称.外键在all_constraints 索引在all_i ...

  7. 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等 - Oracle   基础和管理_files...

    1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.ind ...

  8. oracle连接总结(内连接、外连接、自然连接,交叉连接,自连接)

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! oracle连接总结(内连接.外连接.自然连接,交叉连接,自连接) 1.简述  1) 两个表的连接,是通过将一个表中的一列或者多列同另一 ...

  9. oracle左外连接语法,Oracle 左外连接、右外连接、全外连接小总结

    Oracle 左外连接.右外连接.全外连接小总结: 1.左外连接: left outer join 或者 left join 左外连接就是在等值连接的基础上加上主表中的未匹配数据,例: SELECT ...

最新文章

  1. 波段 ku_X和Ku波段小尺寸无线电设计
  2. 如何用CMD开启3389与查看3389端口
  3. 下载的java游戏怎么运行不了_java运行环境下载
  4. jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容
  5. 老生常谈–希望别再纠结了朋友
  6. android 人脸识别_小模型,高精度!小视科技推出极致轻量型人脸识别SDK
  7. SharePoint 2010设计(Design)权限能操作的网站操作菜单项
  8. 马斯克回应一切:2018年极其痛苦,福特难熬下次经济衰退,后悔发太多推特
  9. Python+数据库+前端+Django
  10. 手把手写一个vue3的组件
  11. Win7安装msu文件失败引发的一系列问题
  12. 通达信手机版服务器文件夹,【通达信】通达信的一些目录和系统文件,用法说明。以备查询。...
  13. 深度学习(二),终于理解了深度学习原理--SPGD(SGD)优化算法的实现原理
  14. elementUI开始时间和结束时间验证
  15. DiskPart-删除磁盘分区
  16. android app 隐藏应用,教你一招,隐藏我们手机中的APP应用!
  17. 套头文件html重复,关于C++头文件重复包含的问题
  18. php控制树莓派GPIO
  19. Learning from Interpretable Analysis:Attention-Based Knowledge Tracing
  20. 锁定计算机时候的屏幕壁纸,电脑锁屏的时候屏幕壁纸怎么更改

热门文章

  1. Andrew Ng 深度学习课后测试记录-01-week2-答案
  2. IBM 数据科学平台三大特性解决数据科学家协作问题
  3. HDOJ/HDU 2565 放大的X(分段思考~)
  4. insertAdjacentHTML方法详解
  5. 提高大数据量并发访问时效率
  6. 监测你的SQL SERVER--让瓶颈暴露
  7. lua 多条件_【LUA】只需花费你半天时间
  8. spark编程mysql数据源_Spark - 直接操作数据源 MySQL
  9. a类不确定度计算器_统统帮您搞定:LIMS系统,换版、内审、期间核查、不确定度、数据分析…………...
  10. c语言答案填空选择,C语言试题配答案