Oracle 查看一个表对应的主键和外键的约束关系,查看的语句:
select a.owner, --主键拥有者
a.table_name, --主键表
b.column_name, --主键列
c.OWNER, --外键拥有者
c.table_name, --外键表
d.column_name --外键列
from user_constraints a
left join user_cons_columns b
on a.constraint_name=b.constraint_name
left join user_constraints c
on c.R_CONSTRAINT_NAME=a.constraint_name
left join user_cons_columns d
on c.constraint_name=d.constraint_name
where a.constraint_type='P'
and a.table_name='xxx' --需要查看主外键关系的表
order by a.table_name
数据字典表列说明:
desc user_constraints
Name Comments
OWNER 表的所有者
CONSTRAINT_NAME 约束名
CONSTRAINT_TYPE 约束类型
TABLE_NAME Name associated with table with constraint definition
SEARCH_CONDITION Text of search condition for table check
R_OWNER Owner of table used in referential constraint
R_CONSTRAINT_NAME Name of unique constraint definition for referenced table
DELETE_RULE The delete rule for a referential constraint
STATUS Enforcement status of constraint - ENABLED or DISABLED
DEFERRABLE Is the constraint deferrable - DEFERRABLE or NOT DEFERRABLE
DEFERRED Is the constraint deferred by default - DEFERRED or IMMEDIATE
VALIDATED Was this constraint system validated? - VALIDATED or NOT VALIDATED
GENERATED Was the constraint name system generated? - GENERATED NAME or USERNAME
BAD Creating this constraint should give ORA-02436. Rewrite it before2000 AD.
RELY If set, this flag will be used in optimizer
LAST_CHANGE The date when this column was last enabled or disabled
INDEX_OWNER The owner of the index used by the constraint
INDEX_NAME The index used by the constraint
INVALID
VIEW_RELATED
desc user_cons_columns;
Name Default Comments
OWNER Owner of the constraint definition
CONSTRAINT_NAME Name associated with the constraint definition
TABLE_NAME Name associated with table with constraint definition
COLUMN_NAME Name associated with column or attribute of object column specified in the constraint definition
POSITION Original position of column or attribute in definition
分享到:
相关推荐
这段SQL语句则用于查询特定表(“Ҫд”)的外键关联列信息,通过`left join`将`user_cons_columns`和`user_constraints`表关联起来,并通过`c.constraint_type='R'`筛选出外键约束。 通过以上内容的介绍,我们...
在Oracle中,相关视图包括user_constraints、user_cons_columns等。其中,user_constraints视图记录了用户拥有的各种类型的约束信息,包括主键、唯一键、外键和检查约束等。每个约束都会有一个对应的名称,并且这个...
要查询某张表的主键信息,可以通过`USER_CONSTRAINTS`和`USER_CONS_COLUMNS`视图实现: ```sql SELECT COL.COLUMN_NAME AS 主键字段 FROM USER_CONSTRAINTS CON INNER JOIN USER_CONS_COLUMNS COL ON CON....
`user_cons_columns` 表记录了约束所涉及的列信息,`user_constraints` 表则包含了约束本身的信息。通过设置 `constraint_type = 'P'` 来筛选出主键约束。`constraint_name` 在两个表中被用作关联字段,从而能够获取...
- **DBA_CONSTRAINTS**、**ALL_CONSTRAINTS** 和 **USER_CONSTRAINTS** 显示了所有约束的信息,包括主键、外键、唯一性约束等。 - **DBA_CONS_COLUMNS**、**ALL_CONS_COLUMNS** 和 **USER_CONS_COLUMNS** 显示了每个...
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表 4. 查找表的外键(包括名称、...
2. 查询外键约束所涉及的列名,可以通过`USER_CONS_COLUMNS`视图完成,提供外键名称即可: ```sql SELECT * FROM user_cons_columns WHERE constraint_name = '外键名称'; ``` 3. 若要找出引用表的键的列名,...
Oracle提供了一些内置的数据字典视图,如`USER_CONSTRAINTS`, `ALL_CONSTRAINTS`, 和 `DBA_CONSTRAINTS`,它们包含了关于表约束的信息。我们可以通过查询这些视图,找出所有的主键和外键,从而确定哪些是主表,哪些...
- **DBA_CONSTRAINTS/ALL_CONSTRAINTS/USER_CONSTRAINTS**:提供关于表上定义的所有约束信息,包括主键、外键、唯一性约束等。 - **DBA_CONS_COLUMNS/ALL_CONS_COLUMNS/USER_CONS_COLUMNS**:提供关于每个约束所...
使用 `USER_CONSTRAINTS` 和 `USER_CONS_COLUMNS` 数据字典视图可以查看已定义的约束信息。 ```sql SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, COLUMN_NAME FROM USER_CONSTRAINTS NATURAL JOIN ...
FROM user_constraints a, user_constraints c, user_cons_columns b WHERE a.constraint_name = b.constraint_name AND a.constraint_type = 'R' AND a.r_constraint_name = c.constraint_name AND a....
- `user_constraints` 表存储了所有约束的信息,包括主键、外键等。 - `user_cons_columns` 表记录了约束所涉及的列信息。 - 通过连接这些表,并根据`constraint_type`的不同来区分主键和外键,可以找出所有关联...
脚本分为两部分:第一部分是从`USER_CONS_COLUMNS`和`USER_CONSTRAINTS`视图中获取所有外键信息,包括外键所在的表名、外键约束名以及外键列名;第二部分则是通过`WHERE`子句过滤出没有相应索引的外键。 ```sql ...
- **查找表的主键**:通过`user_cons_columns`和`user_constraints`,筛选出类型为'P'(主键)的约束。 - **查找表的唯一性约束**:类似主键查询,但筛选条件为'U'(唯一性约束)。 - **查找表的外键**:首先找到...
此外,可以通过查询 `USER_CONSTRAINTS` 和 `USER_CONS_COLUMNS` 视图来进一步确认 NOT NULL 约束的传递情况。例如: ```sql SELECT a.owner, a.table_name, b.column_name, a.constraint_name, a.constraint_type,...
11. **USER_CONS_COLUMNS**: 提供用户约束对应的表列信息,有助于分析和调试约束问题。 12. **USER_CLUSTERS**、**USER_CLU_COLUMNS**、**USER_CLUSTER_HASH_EXPRESSIONS**: 这些表与数据库的簇相关,簇是一种...
FROM USER_CONSTRAINTS C, USER_CONS_COLUMNS CC WHERE C.OWNER = UPPER('&table_owner') AND C.TABLE_NAME = UPPER('&table_name') AND C.OWNER = CC.OWNER AND C.CONSTRAINT_NAME = CC.CONSTRAINT_NAME; ``` 以上...
SELECT C.CONSTRAINT_NAME, C.CONSTRAINT_TYPE, CC.COLUMN_NAME FROM USER_CONSTRAINTS C, USER_CONS_COLUMNS CC WHERE C.OWNER = UPPER('&table_owner') AND C.TABLE_NAME = UPPER('&table_name') AND C.OWNER = CC...
FROM user_constraints c, user_cons_columns cc WHERE c.owner = UPPER('&table_owner') AND c.table_name = UPPER('&table_name') AND c.owner = cc.owner AND c.constraint_name = cc.constraint_name ...
3. **处理约束**:通过查询`USER_CONSTRAINTS`和`USER_CONS_COLUMNS`获取表的主键、外键和唯一键信息,以便在MySQL中重建这些约束。 4. **索引处理**:查询`USER_IND_COLUMNS`和`USER_INDEXES`以获取表的索引信息,...