首页 > 软件开发 > ORACLE >

【oracle管理】oracle中的外键

来源:互联网 2023-03-16 23:57:06 版权归原作者所有,如有侵权,请联系我们

之前写的一篇关于oracle中的主键约束的,今天给大家简单介绍一下oracle中的另一个约束-外键(FK),外键是一张表的一列引用另一张表的一列或几列,被引用的列应有主键或唯一性约束。xrR办公区 - 实用经验教程分享!

工具/原料

  • oracle,sqlplus

方法/步骤

  • 1

    首先我们创建两张,一张员工表,一张部门表,在部门表的dip字段上创建主键,在员工表创建外键,这里的部门表就是父表,而员工表就是子表。xrR办公区 - 实用经验教程分享!

    【oracle管理】oracle中的外键xrR办公区 - 实用经验教程分享!

  • 1该信息非法爬取自百度经验
  • 2

    在insert时要注意,原则上只有父表先插数据后,子表才能再插入数据,否则报错。xrR办公区 - 实用经验教程分享!

    【oracle管理】oracle中的外键xrR办公区 - 实用经验教程分享!

  • 3

    在update时要注意,如果更新外键字段时,如果更新的值不在主表中存在,则更新不了,报错。xrR办公区 - 实用经验教程分享!

    【oracle管理】oracle中的外键xrR办公区 - 实用经验教程分享!

  • 4

    在delete时注意:xrR办公区 - 实用经验教程分享!

    父表:xrR办公区 - 实用经验教程分享!

    如果有级联删除,父表记录被删,子表(A)的记录也没有了。xrR办公区 - 实用经验教程分享!

    如果没有有级联删除,则报错:ORA-02292: integrity constraint (SYS.FK_EMP_DEPT) violated - child record foundxrR办公区 - 实用经验教程分享!

    子表:xrR办公区 - 实用经验教程分享!

    如果有级联删除,子表记录被删,父表记录还在。xrR办公区 - 实用经验教程分享!

    如果没有有级联删除,子表记录被删,父表记录还在。xrR办公区 - 实用经验教程分享!

    【oracle管理】oracle中的外键xrR办公区 - 实用经验教程分享!

  • 5

    在drop时注意:xrR办公区 - 实用经验教程分享!

    父表:报错:ORA-02449: unique/primary keys in table referenced by foreign keysxrR办公区 - 实用经验教程分享!

    或者用drop table b cascade constraint。子表的外键也没了。xrR办公区 - 实用经验教程分享!

    子表:可以,但是从回收站恢复后外键没了。xrR办公区 - 实用经验教程分享!

    【oracle管理】oracle中的外键xrR办公区 - 实用经验教程分享!

    【oracle管理】oracle中的外键xrR办公区 - 实用经验教程分享!

  • 6

    最后写了一个方便查主外键关系的SQLxrR办公区 - 实用经验教程分享!

    【oracle管理】oracle中的外键xrR办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!xrR办公区 - 实用经验教程分享!


    标签: oracle

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号