Oracle中查詢主鍵、外鍵、sequence、表基本信息等


一次看到某張表中有幾條ID相同的數據,通過業務確認該ID應該是唯一的,后來找到原因,因為DBA未對該表建主鍵

現在DBA工作比較忙,我們項目有時需要新增或者修改數據庫表結構時,可能需要對表結構進行確認。下面提供幾個比較有用對SQL,可以幫助大家看看數據庫 中表結構定義怎樣的,以PRODUCT表為例,請自行更換為所需的表名。

1.查詢主鍵:

----*********查詢主鍵------------

select  col.*
from user_constraints con,user_cons_columns col
where
con.constraint_name=col.constraint_name and con.constraint_type='P'
and col.table_name='PRODUCT'

select   *   from   user_constraints   where   table_name   =   'PRODUCT'
and   constraint_type   ='P'

2.查看表結構基本信息:

--------*********查詢表基本信息---------------

select
utc.column_name,utc.data_type,utc.data_length,utc.data_precision,
utc.data_Scale,utc.nullable,utc.data_default,ucc.comments
from
user_tab_columns utc,user_col_comments ucc
where
utc.table_name = ucc.table_name
and utc.column_name = ucc.column_name
and utc.table_name = 'PRODUCT'
order by
column_id

3.查看SEQUENCE

-----sequence-------------------

SELECT SEQ_PRODUCT_DRAFT.nextval FROM dual

----能查出來就說明該SEQ存在

(PRODUCT表中的ID是沒有設SEQ的,業務邏輯是該從product_draft那邊的ID寫入product.id,所以此處查的是 product_draft中的seq)

4.查看外鍵
----
**查詢外鍵-----

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'

 

參考:http://blog.sina.com.cn/s/blog_497cdcc10100bi85.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM