データ・ディクショナリ

PK(プライマリキー)を構成するカラム一覧

DBA_CONS_COLUMNSを参照する事で構成カラムが分かります

以下はSOONIスキーマテーブルのプライマリキー制約を構成するカラム一覧を出力しています。DBA_RECYCLEBINと結合しているのは既に削除されているテーブルは表示対象外としたいためです。

プライマリキー構成項目一覧出力SQL
select
 c.OWNER
,c.TABLE_NAME
,c.CONSTRAINT_NAME
--,c.CONSTRAINT_TYPE
,c.INDEX_NAME
,e.POSITION
,e.COLUMN_NAME
from
DBA_CONSTRAINTS c
inner join DBA_CONS_COLUMNS e
on c.OWNER = e.OWNER and c.CONSTRAINT_NAME = e.CONSTRAINT_NAME
where 1=1
and c.OWNER = 'SOONI'
and c.CONSTRAINT_TYPE = 'P'
and not exists 
( select 'X' from DBA_RECYCLEBIN r where  c.OWNER = r.OWNER and c.TABLE_NAME = r.OBJECT_NAME)
order by c.OWNER,c.TABLE_NAME,c.constraint_name,e.position
;
出力例
OWNER      TABLE_NAME         CONSTRAINT_NAME      INDEX_NAME           POSITION COLUMN_NAME
---------- ------------------ -------------------- ------------------ ---------- --------------------
SOONI      AAA                AAA_PK               AAA_PK                      1 C1
SOONI      CABLE              SYS_C0011405         SYS_C0011405                1 ID
SOONI      CABLE              SYS_C0011405         SYS_C0011405                2 TEST_ITEM
SOONI      CUST               SYS_C0010913         SYS_C0010913                1 C_ID
SOONI      EX003              PK_EX003             PK_EX003                    1 C1
SOONI      EX005              PK_EX005             PK_EX005                    1 C1
SOONI      EX006              PK_EX006             PK_EX006                    1 C1
SOONI      EX01               PK_EX01              IDX_EX01                    1 SID
SOONI      EX901              SYS_C0011373         SYS_C0011373                1 SID
SOONI      MST_ADDRESS        PK_MST_ADDRESS       PK_MST_ADDRESS              1 OAZA_TOWN_CHOME_CODE
SOONI      OY_PREFECTURE      PK_OY_PREFECTURE     PK_OY_PREFECTURE            1 PREFID
SOONI      OY_REGION          PK_REGION            PK_REGION                   1 REGION_ID
SOONI      RPEX01             RPEX01_PK            RPEX01_PK                   1 SID
SOONI      SPEC               SYS_C0011407         SYS_C0011407                1 TEST_ITEM
SOONI      TABLE02            SYS_C0012553         SYS_C0012553                1 ID
SOONI      TABLE03            TABLE03_PK           TABLE03_PK                  1 ID
SOONI      TABLE04            TABLE04_PK           TABLE04_PK                  1 NAME
SOONI      TABLE05            TABLE05_PK           TABLE05_PK                  1 NAME
SOONI      TABLE05            TABLE05_PK           TABLE05_PK                  2 FURIGANA
SOONI      TBL035             SYS_C0012588         SYS_C0012588                1 LNO
SOONI      TBL37              PK_TBL37             PK_TBL37                    1 AUTO_ID

21行が選択されました。

SQL>
SQL*Plus用
SET LIN 200
SET PAGES 100
COLUMN OWNER FORMAT A10
COLUMN TABLE_NAME FORMAT A18
COLUMN CONSTRAINT_NAME FORMAT A20
COLUMN INDEX_NAME FORMAT A18
COLUMN COLUMN_NAME FORMAT A20

PKの作成と削除はこちらで可能です

スポンサーリンク