首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Oracle和2个模式中创建表的外键失败

在Oracle数据库中,可以通过使用外键来确保表与其他表之间的关联完整性。然而,在创建表的外键时可能会遇到失败的情况。下面是可能导致外键创建失败的一些常见原因以及解决方案:

  1. 表顺序问题:如果尝试在创建外键之前创建被引用的表,或者尝试在被引用的表不存在时创建外键,将导致创建外键失败。解决方法是按照正确的顺序创建表,或者使用ALTER TABLE语句来添加外键。
  2. 数据类型不匹配:外键列和被引用列的数据类型必须匹配。例如,如果外键列是整数类型,被引用列也必须是整数类型。确保外键和被引用列具有相同的数据类型。
  3. 约束冲突:如果外键违反了其他约束条件,例如唯一约束或主键约束,创建外键也会失败。解决方法是先解决与外键冲突的约束问题,然后再尝试创建外键。
  4. 数据一致性问题:如果表中已存在不符合外键约束的数据,尝试创建外键时也会失败。解决方法是先确保表中的数据满足外键约束,或者使用CASCADE选项来删除不符合外键约束的数据。
  5. 无效的引用列:在创建外键时引用了不存在的列也会导致失败。确保引用的列名正确且存在。

综上所述,当在Oracle数据库中创建表的外键时遇到失败时,应该检查表的顺序、数据类型、约束冲突、数据一致性和引用列的有效性等问题,并根据具体情况采取相应的解决方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Django学习-第七讲:django 常用字段、字段属性,关系、操作

    5. unique 这个字段值是否唯一。一般是设置手机号码/邮箱等。...关系 MySQL有两种引擎,一种是InnoDB,另外一种是myisam。如果使用是InnoDB引擎,是支持约束存在使得ORM框架在处理关系时候异常强大。...因此这里我们首先来介绍下Django使用。 类定义为class ForeignKey(to,on_delete,**options)。...因此底层,Django为Article添加了一个属性名_id字段(比如author字段名称是author_id),这个字段是一个,记录着对应作者主键。...即只要这条数据引用了那条数据,那么就不能删除外那条数据。 3.SET_NULL:设置为空。如果那条数据被删除了,那么本条数据上就将这个字段设置为空。

    4K30

    Django创建字段属性简介、脏数据概念、子序列化

    Django设置 通过图书管理系统引入多表操作:如果我们创建方式是先抽象出之间相同字段建一个父类,然后在用每个类去继承这个父类,如下面的代码,我们将无法得到期望表字段。...反过来先操作B后操作A,更满足逻辑思维,一样可以执行。通过逻辑将A、B进行连查询,不会有任何异常。如两张建立了一对一字段,A,那么先往B写数据就更合理。...假设图书管理系统书、出版社、作者、作者详细信息四张之间关系如下: """ 关系 1)Book Publish 一对多:一方 Book 2)Book Author 多对多:查询频率高一方...Book 3)Author AuthorDetail 一对一:要根据实际需求建立合理位置 AuthorDetail(AuthorDetail方作者就可以没有AuthorDetail,...更合理) """ Django orm中外字段属性详解 在建之前我们对外字段属性进行了解: 1)related_name在外设置反向查询字段名:正向找字段名,反向找related_name

    4.3K30

    【DB笔试面试592】Oracle之间关联方式有哪几种?

    ♣ 题目部分 Oracle之间关联方式有哪几种?...详细介绍这3类连接方式之前,先创建T_20161014_LHR_01共100行记录,T_20161014_LHR_02共100000行记录,创建脚本如下所示: DROP TABLE T_20161014...Oracle数据库中有一个隐含参数“_OPTIMIZER_SORTMERGE_JOIN_ENABLED”控制着SMJ启用关闭,该参数默认值是TRUE,表示启用SMJ连接。...嵌套循环连接Oracle读取驱动(外部每一行,然后在被驱动(内部检查是否有匹配行,所有被匹配行都被放到结果集中,然后处理驱动下一行。...Oracle数据库中有一个隐含参数“_HASH_JOIN_ENABLED”控制着HJ启用关闭,该参数默认值是TRUE,表示启用HJ连接。

    2.1K10

    【DB笔试面试643】Oracle,如何查询索引历史统计信息?

    ♣ 题目部分 Oracle,如何查询索引历史统计信息?...♣ 答案部分 从Oracle 10g开始,当收集统计信息时候,旧统计数据被保留,如果因为新统计信息而出现性能问题,旧统计信息就可以被恢复。...历史统计信息保存在以下几张: l WRI$_OPTSTAT_TAB_HISTORY 统计信息 l WRI$_OPTSTAT_IND_HISTORY 索引统计信息 l WRI$_OPTSTAT_HISTHEAD_HISTORY...这些统计信息SYSAUX空间中占有额外存储开销,所以应该注意并防止统计信息将空间填满。...任何恢复到比这日期旧统计信息请求都会失败:“ORA-20006: Unable to restore statistics , statistics history not available”:

    2.3K20

    为什么不推荐数据库使用

    2.表格关系不清晰 数据库缺少另一个不太明显负面影响是,不了解该模式的人很难找到正确并找出关系。这可能会导致严重数据库查询报告问题。 为什么数据库可以没有?...1.性能 上拥有活动可以提高数据质量,但会影响插入、更新和删除操作性能。在这些任务之前,数据库需要检查它是否违反数据完整性。这就是为什么一些架构师DBA完全放弃原因。...然而,这引入了额外逻辑复杂性以及另一个失败点。如上所述,对性能有负面影响。通常,成本大于收益,开发人员不用担心。...这些工具负责参照完整性,并与RDBMS一起创建更高级别的数据库引擎。这些框架可以自己创建数据库,而不总是创建。使用这些工具开发人员很少会干扰自动生成模式,并且不需要。...也许这个原因以前一样,或者是下一个原因: 8.懒惰架构师 创建数据库时,如果要存储数据,则需要创建一些列。这是最低限度。但是,您不必创建保持数据一致性结构,如主键,唯一或约束。

    1.8K20

    数据库不推荐使用 9 个理由

    2.表格关系不清晰 数据库缺少另一个不太明显负面影响是,不了解该模式的人很难找到正确并找出关系。这可能会导致严重数据库查询报告问题。 为什么数据库可以没有?...1.性能 上拥有活动可以提高数据质量,但会影响插入、更新和删除操作性能。在这些任务之前,数据库需要检查它是否违反数据完整性。这就是为什么一些架构师DBA完全放弃原因。...然而,这引入了额外逻辑复杂性以及另一个失败点。如上所述,对性能有负面影响。通常,成本大于收益,开发人员不用担心。...这些工具负责参照完整性,并与RDBMS一起创建更高级别的数据库引擎。这些框架可以自己创建数据库,而不总是创建。使用这些工具开发人员很少会干扰自动生成模式,并且不需要。...也许这个原因以前一样,或者是下一个原因: 8.懒惰架构师 创建数据库时,如果要存储数据,则需要创建一些列。这是最低限度。但是,您不必创建保持数据一致性结构,如主键,唯一或约束。

    1.7K30

    Oracle如何导出存储过程、函数、包触发器定义语句?如何导出结构?如何导出索引创建语句?

    今天小麦苗给大家分享Oracle如何导出存储过程、函数、包触发器定义语句?如何导出结构?如何导出索引创建语句?。 Oracle如何导出存储过程、函数、包触发器定义语句?...如何导出结构?如何导出索引创建语句?...另外,若单纯为了导出DDL语句则可以使用expdp导出时候使用CONTENT=METADATA_ONLYEXCLUDE=STATISTICS选项,这样导出DMP文件比较小。...另外,使用imp工具indexfile选项也可以把dmp文件索引创建语句导出而不导入任何对象,命令如下: imp userid/userid@service_name file=/tmp/exp_ddl_lhr...EMP" ENABLE CONSTRAINT "FK_DEPTNO" ; [oracle@rhel6lhr tmp]$ 可以看到其中创建SQL语句被注释掉了,这个可以用vi命令或者文本工具来处理,

    5.2K10

    数据库不使用 9 个理由

    表格关系不清晰 数据库缺少另一个不太明显负面影响是,不了解该模式的人很难找到正确并找出关系。这可能会导致严重数据库查询报告问题。 为什么数据库可以没有?...性能 上拥有活动可以提高数据质量,但会影响插入、更新和删除操作性能。在这些任务之前,数据库需要检查它是否违反数据完整性。这就是为什么一些架构师DBA完全放弃原因。...然而,这引入了额外逻辑复杂性以及另一个失败点。如上所述,对性能有负面影响。通常,成本大于收益,开发人员不用担心。 4....这些工具负责参照完整性,并与RDBMS一起创建更高级别的数据库引擎。这些框架可以自己创建数据库,而不总是创建。使用这些工具开发人员很少会干扰自动生成模式,并且不需要。 5....懒惰架构师 创建数据库时,如果要存储数据,则需要创建一些列。这是最低限度。但是,您不必创建保持数据一致性结构,如主键,唯一或约束。这需要一些努力,但是却没有带来直接好处。

    1.2K10

    数据库不推荐使用9个理由

    2.表格关系不清晰 数据库缺少另一个不太明显负面影响是,不了解该模式的人很难找到正确并找出关系。这可能会导致严重数据库查询报告问题。 为什么数据库可以没有?...1.性能 上拥有活动可以提高数据质量,但会影响插入、更新和删除操作性能。在这些任务之前,数据库需要检查它是否违反数据完整性。这就是为什么一些架构师DBA完全放弃原因。...然而,这引入了额外逻辑复杂性以及另一个失败点。如上所述,对性能有负面影响。通常,成本大于收益,开发人员不用担心。...这些工具负责参照完整性,并与RDBMS一起创建更高级别的数据库引擎。这些框架可以自己创建数据库,而不总是创建。使用这些工具开发人员很少会干扰自动生成模式,并且不需要。...也许这个原因以前一样,或者是下一个原因: 8.懒惰架构师 创建数据库时,如果要存储数据,则需要创建一些列。这是最低限度。但是,您不必创建保持数据一致性结构,如主键,唯一或约束。

    2.1K10

    Java面试之数据库面试题

    与现实生活锁一样,它可以使某些数据拥有者,某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 9、什么叫视图?游标是什么? 视图:是一种虚拟,具有物理表相同功能。...右连接:右边为驱动,驱动数据全部显示,匹配不匹配不会显示。 全连接:连接不匹配数据全部会显示出来。 交叉连接: 笛卡尔效应,显示结果是链接乘积。...12、主键区别? 主键是唯一、不可唯空可以重复可以唯空;另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:行可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 约束 且三大范式是一级一级依赖,第二范式建立第一范式上,第三范式建立第一第二范式上 15...UNION进行表链接后会筛选掉重复记录,所以表链接后会对所产生结果集进行排序运算,删除重复记录再返回结果。实际大部分应用是不会产生重复记录,最常见是过程与历史UNION。

    1.5K20

    数据库常见面试题大全

    与现实生活锁一样,它可以使某些数据拥有者,某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 9、什么叫视图?游标是什么? 视图:是一种虚拟,具有物理表相同功能。...右连接:右边为驱动,驱动数据全部显示,匹配不匹配不会显示。 全连接:连接不匹配数据全部会显示出来。 交叉连接: 笛卡尔效应,显示结果是链接乘积。...12、主键区别? 主键是唯一、不可唯空可以重复可以唯空;另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:行可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 约束 且三大范式是一级一级依赖,第二范式建立第一范式上,第三范式建立第一第二范式上 15...UNION进行表链接后会筛选掉重复记录,所以表链接后会对所产生结果集进行排序运算,删除重复记录再返回结果。实际大部分应用是不会产生重复记录,最常见是过程与历史UNION。

    1.4K40

    数据库经典面试题,都给你收集好了!!!

    与现实生活锁一样,它可以使某些数据拥有者,某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 9、什么叫视图?游标是什么? 视图:是一种虚拟,具有物理表相同功能。...右连接:右边为驱动,驱动数据全部显示,匹配不匹配不会显示。 全连接:连接不匹配数据全部会显示出来。 交叉连接: 笛卡尔效应,显示结果是链接乘积。...12、主键区别? 主键是唯一、不可唯空可以重复可以唯空;另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:行可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 约束 且三大范式是一级一级依赖,第二范式建立第一范式上,第三范式建立第一第二范式上 15...UNION进行表链接后会筛选掉重复记录,所以表链接后会对所产生结果集进行排序运算,删除重复记录再返回结果。实际大部分应用是不会产生重复记录,最常见是过程与历史UNION。

    1.6K30

    Java面试之数据库面试题

    与现实生活锁一样,它可以使某些数据拥有者,某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 9、什么叫视图?游标是什么? 视图:是一种虚拟,具有物理表相同功能。...右连接:右边为驱动,驱动数据全部显示,匹配不匹配不会显示。 全连接:连接不匹配数据全部会显示出来。 交叉连接: 笛卡尔效应,显示结果是链接乘积。...12、主键区别? 主键是唯一、不可唯空可以重复可以唯空;另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:行可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 约束 且三大范式是一级一级依赖,第二范式建立第一范式上,第三范式建立第一第二范式上 15...UNION进行表链接后会筛选掉重复记录,所以表链接后会对所产生结果集进行排序运算,删除重复记录再返回结果。实际大部分应用是不会产生重复记录,最常见是过程与历史UNION。

    1.5K41

    【DB笔试面试436】Oracle如何导出存储过程、函数、包触发器定义语句?如何导出结构?如何导出索引创建语句?

    题目 Oracle如何导出存储过程、函数、包触发器定义语句?如何导出结构?如何导出索引创建语句?...SQL语句: SELECT DBMS_METADATA.GET_DDL('CONSTRAINT','EMP_PK') FROM DUAL; n 查看创建SQL语句: SELECT DBMS_METADATA.GET_DDL...(4)对于DBMS_METADATA.GET_DDL包,可以PLSQL Developer工具运行,也可以SQL*Plus运行。...另外,使用imp工具indexfile选项也可以把dmp文件索引创建语句导出而不导入任何对象,命令如下: imp userid/userid@service_name file=/tmp/exp_ddl_lhr...EMP" ENABLE CONSTRAINT "FK_DEPTNO" ; [oracle@rhel6lhr tmp]$ 可以看到其中创建SQL语句被注释掉了,这个可以用vi命令或者文本工具来处理

    5.3K10

    【DB笔试面试800】Oracle,归档非归档模式之间不同点是什么?它们各自优缺点是什么?

    ♣ 题目部分 Oracle,归档非归档模式之间不同点是什么?它们各自优缺点是什么? ♣ 答案部分 Oracle数据库,数据库可以设置为归档模式非归档模式。...DBA必须做出一个重要决策是将数据库配置为ARCHIVELOG模式下运行还是将其配置为NOARCHIVELOG模式下运行。。...4)当执行数据库备份时,必须备份数据库所有数据文件控制文件。 归档非归档模式有以下几点区别: l NOARCHIVELOG模式下,每次进行日志切换时都会覆盖联机重做日志文件。...l 大多数情况下,数据库处于NOARCHIVELOG模式(默认模式)时,只能恢复到最后一次备份时状态。该备份之后执行所有事务处理都会丢失。...ARCHIVELOG模式下,可一直恢复到最后一次提交时状态。大多数生产数据库都在ARCHIVELOG模式下运行。

    1.1K30

    数据库Schema是什么?「建议收藏」

    数据库模式可以用一个可视化图来表示,它显示了数据库对象及其相互之间关系 以上是模式一个简单例子,显示了三个及其数据类型、之间关系以及主键,以下是数据库模式一个更复杂例子。...我们设计一个数据库之前,还需要看看数据信息种类和它们之间关系, 我们开始使用DBMS物理模式之前,我们需要创建一个概念模式。...SQL Server官方文档指出,schema包含了数据库,字段,数据类型以及主键名称。参考:SQL Server Glossary....Oracle Database Oracle,CREATE SCHEMA语句实际上并不创建一个模式,这是因为已经为创建用户时,数据库用户就已经创建了一个模式,也就是说ORACLECREATE...ORACLE也不同,CREATE SCHEMA语句实际创建了一个模式(前面说到这个语句ORACLE创建一个模式),SQL Server,一旦创建模式,就可以往模式添加用户对象。

    12.3K61

    数据库常见面试题及答案(数据库面试常见问题)

    与现实生活锁一样,它可以使某些数据拥有者,某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 9、什么叫视图?游标是什么? 视图:是一种虚拟,具有物理表相同功能。...右连接:右边为驱动,驱动数据全部显示,匹配不匹配不会显示。 全连接:连接不匹配数据全部会显示出来。 交叉连接: 笛卡尔效应,显示结果是链接乘积。...12、主键区别? 主键是唯一、不可唯空可以重复可以唯空;另一张主键关联,不能创建对应不存在。 13、在数据库查询语句速度很慢,如何优化?...第一范式:列不可再分 第二范式:行可以唯一区分,主键约束 第三范式:非主属性不能依赖与其他非主属性 约束 且三大范式是一级一级依赖,第二范式建立第一范式上,第三范式建立第一第二范式上 15...22、commit在哪里会运用 oraclecommit就是DML语句提交数据(这里是释放锁不是锁),未提交前你前面的操作更新都是内存,没有更新到物理文件

    4K10
    领券