コンテンツにスキップ

Primary key note

主キーを検索

select
    USER_CONS_COLUMNS.OWNER
   ,USER_CONS_COLUMNS.TABLE_NAME
   ,USER_CONS_COLUMNS.COLUMN_NAME
   ,USER_TAB_COLUMNS.DATA_TYPE
   ,USER_TAB_COLUMNS.DATA_LENGTH
from
    USER_CONS_COLUMNS
    left join USER_TAB_COLUMNS on USER_CONS_COLUMNS.COLUMN_NAME = USER_TAB_COLUMNS.COLUMN_NAME
    inner join USER_CONSTRAINTS on USER_CONS_COLUMNS.CONSTRAINT_NAME = USER_CONSTRAINTS.CONSTRAINT_NAME 
                               and  USER_CONSTRAINTS.CONSTRAINT_TYPE = 'P'
where  1=1
order by 1,2,3

USER_CONSTRAINTS

CONSTRAINT_NAME(制約名)はあるが、カラム名が無い。
CONSTRAINT_TYPE = 'P' が主キー。

その他のCONSTRAINT_TYPEで表示される制約定義の種類。 * C - 表でのチェック制約 * P - 主キー * U - 一意のキー * R - 参照整合性 * V - ビューでのチェック・オプション付き * O - ビューで読取り専用 * H - ハッシュ式 * F - REF列を含む制約 * S - サプリメンタル・ロギング

https://blogs.oracle.com/oracle4engineer/oracle-database-v24

USER_CONS_COLUMNS

現行のユーザーが所有していて、制約定義に指定されている列を示す。

USER_TAB_COLUMNS

現行のユーザーが所有する表