`
zheng0324jian
  • 浏览: 182610 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle中外键约束问题

 
阅读更多

关于数据结构的外键约束,一般来说,在开发系统的过程中,外键约束遇到的问题较少,但是在移植程序,升级程序的过程中,外键约束对程序员的困扰尤其严重,如果子表A中的一个字段同主表B的字段有外键关系,如果B表没有添加对应的数据,那么在操作A表的过程中就容易出现外键约束错误提示,这样的情况他一般只会告诉你一个外键的名称,如果想要查出来具体的表和字段,则需要下面一段sql:

SELECT
  USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,
  USER_CONS_COLUMNS.TABLE_NAME AS 子表名,
  USER_CONS_COLUMNS.COLUMN_NAME AS 子表列名,
  USER_CONS_COLUMNS.POSITION AS 位置,
  USER_INDEXES.TABLE_NAME AS 主表名,
  USER_IND_COLUMNS.COLUMN_NAME AS 主表列名
FROM
  USER_CONSTRAINTS
    JOIN USER_CONS_COLUMNS
    ON (USER_CONSTRAINTS.CONSTRAINT_NAME
        = USER_CONS_COLUMNS.CONSTRAINT_NAME)
    JOIN USER_INDEXES
    ON (USER_CONSTRAINTS.R_CONSTRAINT_NAME
        = USER_INDEXES.INDEX_NAME)
    JOIN USER_IND_COLUMNS
    ON (USER_INDEXES.INDEX_NAME = USER_IND_COLUMNS.INDEX_NAME)
WHERE
  CONSTRAINT_TYPE = 'R'
  and USER_CONS_COLUMNS.CONSTRAINT_NAME = '外键名'; 

 <!--StartFragment -->

 
分享到:
评论

相关推荐

    基于Oracle的数据库完整性约束分析.pdf

    5. Oracle中外键约束的处理: - 外键可以接受空值,但需考虑是否允许NULL。 - 删除被参照关系中的元组时,Oracle支持受限删除(不允许删除)和级联删除(删除相关联的记录)。 - 插入参照关系中的元组时,通常执行...

    Oracle数据库中外键的相关操作整理

    本文将详细介绍Oracle中外键的创建、使用以及不同类型的外键约束。 首先,我们需要创建一个父表。在例子中,我们创建了一个名为`T_PARENT`的表,并初始化了三行数据,其主键为`PARENT_ID`,字段`NAME`存储相应的...

    Oracle公司内部数据库培训资料10约束.pptx

    一个表只能有一个主键,它通常用作其他表中外键的引用。在`employees`表中,`employee_id`列可能被定义为主键,以确保每个员工有唯一的标识。 4. **FOREIGN KEY**约束:外键约束用于建立两个表之间的关系,通常用来...

    2020_Oracle19c数据迁移图文详解.docx

    1. **禁用表中外键约束**: - 使用SQL查询找出所有包含外键的表。 - 执行SQL命令禁用这些表的外键约束。 2. **导入数据**: - 使用数据泵的`content=data_only`参数仅导入数据。 3. **启用外键约束**: - 数据导入...

    禁用启用所有外键约束.tst

    这行命令会关闭对当前会话中外键检查的支持,允许插入可能违反外键约束的数据。 2. **启用外键约束**: 当完成需要的操作后,要重新启用外键约束,使用: ```sql SET FOREIGN_KEY_CHECKS = 1; ``` 这将恢复...

    oracle 10g ocp

    题目中的问题涉及到了Oracle 9i SQL中外连接(Outer Join)的使用方法。外连接用于检索两个表中匹配的数据行,同时也包括左表或右表中不匹配的数据行。 #### 关键知识点: - **外连接**: 在Oracle 9i中,外连接可以...

Global site tag (gtag.js) - Google Analytics