在Oracle中查询以获取具有主键信息的表中的列

时间:2015-06-05 14:10:17

标签: oracle primary-key

获取表描述的查询是什么,其中列的主键是主键的标记?例如,它将返回如下内容:

{{1}}
列出了

所有表中的列,并且“标记”了主键的一部分。我试图针对user_tab_columns,all_cons_columns和all_constraints进行选择,但我得到了重复的列。感谢。

1 个答案:

答案 0 :(得分:1)

试试这个

select col.table_name , col.column_name, 
case when exists(select 'x' from USER_CONSTRAINTS l 
join USER_CONS_COLUMNS ll on LL.CONSTRAINT_NAME = L.CONSTRAINT_NAME
where l.table_name = col.table_name and l.constraint_type = 'P' and ll.column_name = col.column_name) then 1 else 0 end is_part_of_pk
 from USER_TAB_COLUMNS col where table_name = :some_table_name
 order by column_id;