关于数据结构的外键约束,一般来说,在开发系统的过程中,外键约束遇到的问题较少,但是在移植程序,升级程序的过程中,外键约束对程序员的困扰尤其严重,如果子表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 -->
分享到:
相关推荐
5. Oracle中外键约束的处理: - 外键可以接受空值,但需考虑是否允许NULL。 - 删除被参照关系中的元组时,Oracle支持受限删除(不允许删除)和级联删除(删除相关联的记录)。 - 插入参照关系中的元组时,通常执行...
本文将详细介绍Oracle中外键的创建、使用以及不同类型的外键约束。 首先,我们需要创建一个父表。在例子中,我们创建了一个名为`T_PARENT`的表,并初始化了三行数据,其主键为`PARENT_ID`,字段`NAME`存储相应的...
一个表只能有一个主键,它通常用作其他表中外键的引用。在`employees`表中,`employee_id`列可能被定义为主键,以确保每个员工有唯一的标识。 4. **FOREIGN KEY**约束:外键约束用于建立两个表之间的关系,通常用来...
1. **禁用表中外键约束**: - 使用SQL查询找出所有包含外键的表。 - 执行SQL命令禁用这些表的外键约束。 2. **导入数据**: - 使用数据泵的`content=data_only`参数仅导入数据。 3. **启用外键约束**: - 数据导入...
这行命令会关闭对当前会话中外键检查的支持,允许插入可能违反外键约束的数据。 2. **启用外键约束**: 当完成需要的操作后,要重新启用外键约束,使用: ```sql SET FOREIGN_KEY_CHECKS = 1; ``` 这将恢复...
题目中的问题涉及到了Oracle 9i SQL中外连接(Outer Join)的使用方法。外连接用于检索两个表中匹配的数据行,同时也包括左表或右表中不匹配的数据行。 #### 关键知识点: - **外连接**: 在Oracle 9i中,外连接可以...