oracle中怎么看外键 oracle查看表的主键

在oracle中查询表之间外键的执行语句怎么写?查找表的外键(包括名称,引用表的表名和对应的键名 , 下面是分成多步查询): \x0d\x0a\x0d\x0aselect * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表 \x0d\x0a\x0d\x0a查询外键约束的列名: \x0d\x0a\x0d\x0aselect * from user_cons_columns cl where cl.constraint_name = 外键名称 \x0d\x0a\x0d\x0a查询引用表的键的列名: \x0d\x0a\x0d\x0aselect * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名 \x0d\x0a\x0d\x0a查询表的所有列及其属性 \x0d\x0a\x0d\x0aselect t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表
oracle怎么查看外键在哪个表有时候删除某张表记录的时候,会报错外键约束不能删除 。
如果不了解表之间的关系,可以通过以下语句查询到外键是建在哪张表上的:
select * from dba_constraints where constraint_name='xxx' and constraint_type = 'R';
例如:我的程序日志中报如下错误,我要知道外键是在那个表上.
2015-09-08
18:28:18 [ main:261597003 ] - [ ERROR ] java.sql.SQLException:
ORA-02291: 违反完整约束条件 (IRP.FK66EC57AF5158B9FB) - 未找到父项关键字
select * from dba_constraints where constraint_name='FK66EC57AF5158B9FB' and constraint_type = 'R';
例如:
执行delete from tablename时报错:
ORA-02292: integrity constraint (CCSYS.FK_T_BME_TASKRUNRESULT_TASKID) violated - child record found
可以通过执行
select table_name from dba_constraints where constraint_name='FK_T_BME_TASKRUNRESULT_TASKID' andconstraint_type = 'R';
查询出外键是建在T_BME_TASKRUNRESULT表上的,先把T_BME_TASKRUNRESULT表删除 , 就可以删除 t_bme_task表记录了 。
怎么查看oracle数据库数据表外键select distinct(ucc.column_name) column_name,rela.table_name,rela.column_name column_name1
from
user_constraints uc,user_cons_columns ucc,
(select t2.table_name,t2.column_name,t1.r_constraint_name from user_constraints t1,user_cons_columns t2 where t1.r_constraint_name=t2.constraint_name and t1.table_name='ONLINEXLS') rela
where
uc.constraint_name=ucc.constraint_name
and uc.r_constraint_name=rela.r_constraint_name
and uc.table_name='PRODUCT'
Oracle查看表索引、主键、外键、约束查看表索引、主键、外键、约束
(包括索引名,类型,构成列)
SELECT T.*, I.INDEX_TYPE
FROM USER_IND_COLUMNS T,USER_INDEXES I
WHERE T.INDEX_NAME = I.INDEX_NAME
AND T.TABLE_NAME = I.TABLE_NAME
AND T.TABLE_NAME = 'ORG_DLF'----指定表
AND T.TABLE_OWNER= 'ODSRPT_SIT2';----指定用户
(包括名称,构成列)
SELECT CU.*
FROM DBA_CONS_COLUMNS CU, DBA_CONSTRAINTS AU
WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME
AND AU.CONSTRAINT_TYPE = 'P'
AND AU.TABLE_NAME = 'LOAN_APPLICATION_FEE'-----指定表名
ANDCU.OWNER='ODSRPT_SIT2';-----指定用户名
(包括表名称 , 构成列)
SELECT CU.COLUMN_NAME,AU.TABLE_NAME
FROM DBA_CONS_COLUMNS CU, DBA_CONSTRAINTS AU
WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME
AND AU.CONSTRAINT_TYPE = 'U'
ANDAU.OWNER='RPT_UAT2'-----指定用户名
AND AU.TABLE_NAME = 表名 ;-----指定表名
Selecta.Owner 外键拥有者,
a.Table_Name 外键表,
c.Column_Name 外键列,
b.Owner 主键拥有者,
b.Table_Name 主键表,
d.Column_Name 主键列,
c.Constraint_Name 外键名,
d.Constraint_Name 主键名
From User_Constraints a,
user_Constraints b,
user_Cons_Columns c, --外键表
user_Cons_Columns d --主键表
Where a.r_Constraint_Name = b.Constraint_Name
And a.Constraint_Type = 'R'
And b.Constraint_Type = 'P'
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;
【oracle中怎么看外键 oracle查看表的主键】关于oracle中怎么看外键和oracle查看表的主键的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读