---
title: OceanBase 数据库 Oracle 模式下如何查看外键约束关系-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库 Oracle 模式下如何查看外键约束关系相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库 Oracle 模式下如何查看外键约束关系的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# OceanBase 数据库 Oracle 模式下如何查看外键约束关系

更新时间：2026-05-21 01:56

适用版本： V1.4.x、V2.1.x、V2.2.x、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：How-to  

1. 使用 sys 用户登录数据库的 Oracle 租户。

   ```shell
   $obclient -h172.xx.xxx.xxx -P2xxx -usys@oracle -pxxxx  -A

   ```
 2. 执行如下语句查询指定数据库中已启用的外键约束。

   ```shell
   SELECT
   *
   FROM
       DBA_CONSTRAINTS
   WHERE
       OWNER IN ( SELECT USER_NAME FROM ALL_VIRTUAL_USER_REAL_AGENT WHERE IS_LOCKED=0 AND USER_NAME NOT IN ( 'LBACSYS', 'SYS', 'ORAAUDITOR', 'PUBLIC','DBA','CONNECT','RESOURCE' ) )
       AND CONSTRAINT_TYPE = 'R'
   AND STATUS = 'ENABLED';

   ```

      - `OWNER IN ( SELECT USER_NAME FROM ALL_VIRTUAL_USER_REAL_AGENT WHERE IS_LOCKED=0 AND USER_NAME NOT IN ( 'LBACSYS', 'SYS', 'ORAAUDITOR', 'PUBLIC','DBA','CONNECT','RESOURCE' ) )` :这个条件首先通过子查询从 `ALL_VIRTUAL_USER_REAL_AGENT` 表中获取用户名称，其中排除了一些指定的用户。然后，通过 `OWNER` 字段匹配 `DBA_CONSTRAINTS` 表中的 `OWNER` 名称，以过滤出特定的所有者。
      - `CONSTRAINT_TYPE = 'R'`：这个条件用于限制只查询外键约束，其中 `R` 代表外键约束。
      - `AND STATUS = 'ENABLED'`：这个条件用于过滤出状态为 `ENABLED`（已启用）的外键约束。
 3. 执行如下语句查看外键约束父子关系。

   ```shell
    SELECT A.OWNER       外键拥有者,
       A.TABLE_NAME  外键表,
       C.COLUMN_NAME 外键列,
       B.OWNER       主键拥有者,
       B.TABLE_NAME  主键表,
       D.COLUMN_NAME 主键列
    FROM DBA_CONSTRAINTS  A,
        DBA_CONSTRAINTS  B,
        DBA_CONS_COLUMNS C,
        DBA_CONS_COLUMNS D
    WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME
    AND A.CONSTRAINT_TYPE = 'R'
    AND A.R_OWNER = B.OWNER
    AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME
    AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME
    AND A.OWNER = C.OWNER
    AND A.TABLE_NAME = C.TABLE_NAME
    AND B.OWNER = D.OWNER
    AND B.TABLE_NAME = D.TABLE_NAME
    AND A.OWNER = 'MLTEST';

   ```

      - `A.CONSTRAINT_TYPE = 'R'`：限制只查询外键约束，其中 `R` 代表外键约束。
      - `A.OWNER = 'MLTEST'`：限制只查询指定所有者下的外键关系，其中 `MLTEST` 是指定的所有者。

## 适用版本

OceanBase 数据库所有版本。

Previous

[OceanBase 数据库 Oracle 模式查看外键约束关系](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207754)

Next

[OceanBase 数据库中唯一性约束与普通约束的区别](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207749) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
