查找plsql的约束条件

来源:互联网 发布:网络教学和传统教学 编辑:程序博客网 时间:2024/04/29 12:19

plsql有约束条件提示,怎么查这个约束条件在哪个table上

www.MyException.Cn   发布于:2012-03-16 16:34:56   浏览:297次
plsql有约束条件提示,如何查这个约束条件在哪个table上?
比如我要删除主表数据,提示有外键约束DEVELOP.FK044390xxxxxxxxxxxxx,我想知道这个外键在哪个表上,怎么做?

------解决方案--------------------
把下面的约束名换成你那里提示的名字:
SQL code
select * from user_constraints where constraint_name = 'SYS_C00641637';------解决方案--------------------
SQL code
主键约束SELECT  USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,  USER_CONS_COLUMNS.TABLE_NAME AS 表名,  USER_CONS_COLUMNS.COLUMN_NAME AS 列名,  USER_CONS_COLUMNS.POSITION AS 位置FROM  USER_CONSTRAINTS    JOIN USER_CONS_COLUMNS    ON (USER_CONSTRAINTS.CONSTRAINT_NAME        = USER_CONS_COLUMNS.CONSTRAINT_NAME)WHERE  CONSTRAINT_TYPE = 'P';外键约束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';其他约束SELECT  USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,  USER_CONS_COLUMNS.TABLE_NAME AS 表名,  USER_CONS_COLUMNS.COLUMN_NAME AS 列名,  USER_CONS_COLUMNS.POSITION AS 位置,  CONSTRAINT_TYPE,  SEARCH_CONDITIONFROM  USER_CONSTRAINTS    JOIN USER_CONS_COLUMNS    ON (USER_CONSTRAINTS.CONSTRAINT_NAME        = USER_CONS_COLUMNS.CONSTRAINT_NAME)WHERE  CONSTRAINT_TYPE IN ('C', 'V', 'O');------解决方案--------------------用scott 用户举个例子如下
SQL code
SQL> show userUSER 为 "SCOTT"SQL> ed已写入 file afiedt.buf  1  select a.constraint_name 外键名, a.table_name 外键表, b.constraint_name 主键名, b.table_name 关联主键表  2  from user_constraints a, user_constraints b  3* where  b.table_name=upper('dept') and a.constraint_type = 'R'  and b.constraint_type = 'P'  and a.r_constraint_name = b.constraint_nameSQL> /外键名                         外键表                         主键名------------------------------ ------------------------------ ------------------------------关联主键表------------------------------FK_DEPTNO                      EMP                            PK_DEPTDEPT 
0 0