Oracle中禁用了外键约束对系统有没有影响

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中禁用了外键约束对系统有没有影响相关的知识,希望对你有一定的参考价值。

嗯,就是上面这种情况

禁用了外键约束,那么你的数据可能就不符合 此处外键约定的规则。

对你的数据的逻辑肯定有影响,对你的应用程序可能产生影响。

至于Oracle系统本身,则没有什么影响追问

我的图片你能看到吗,那有什么解决方法啊,是不是把插入的内容删除了就可以了(怎么删除啊)?

追答

应该是你的 外键所在表 已经有不符合外键约束的内容了。

比如主表的主键只有 1,2,3

而你的子表的中外键列 有 1,2,4

可以试试这样删除:

delete from 子表 where 外键列 not in (select 主键列 from 主表)

参考技术A 你的那个字段是主键? 如果那样是唯一的。你贴出来的错误 可能是已经存在相同的数据或者数据格式不对追问

我有好几个表,每个表都有外键,所以全部的表相互之间的外键是穿插着的,我也找不到谁是真正的父项了,是不是我应该先insert插入数据之后,再alter修改外键关系,这样就不会出现外键约束错误了,不过我现在都已经把外键禁用了,估计得重新建表吧

追答

这种外键关系,可以用可以不用,各有好处。如果用了外键报错说明你插入的数据有问题

以上是关于Oracle中禁用了外键约束对系统有没有影响的主要内容,如果未能解决你的问题,请参考以下文章

当您在 Oracle 中删除附加了外键的主键约束然后重新启用主键时会发生啥?

oracle 查询外键的名称

自治事务中的 Oracle DDL

oracle 删除外键约束 禁用约束 启用约束

在 oracle11g系统中 约束的类型都有哪些

如何在导入过程中禁用Oracle约束条件和触发器