Oracle 12cでテーブルの主キー (primary key)を取得する

2021年11月11日

環境

Oracle 12c
Windows Server 2012 R2
A5:SQL Mk-2

書式

SELECT
  別名1.TABLE_NAME,
  別名1.COLUMN_NAME
FROM
  USER_CONS_COLUMNS 別名1
    INNER JOIN USER_CONSTRAINTS 別名2
    ON 別名1.CONSTRAINT_NAME = 別名2.CONSTRAINT_NAME
WHERE
    別名2.TABLE_NAME = 'テーブル名'
AND 別名2.CONSTRAINT_TYPE = 'P'
ORDER BY
  別名1.POSITION;

使用例

SELECT
  KD.TABLE_NAME,
  KD.COLUMN_NAME
FROM
  USER_CONS_COLUMNS KD
    INNER JOIN USER_CONSTRAINTS CFT
    ON KD.CONSTRAINT_NAME = CFT.CONSTRAINT_NAME
WHERE
    CFT.TABLE_NAME = 'NEWS_TBL'
AND CFT.CONSTRAINT_TYPE = 'P'
ORDER BY
  KD.POSITION;

実行結果

TABLE_NAME	COLUMN_NAME
NEWS_TBL	ID
NEWS_TBL	TYPE

 

Oracle 12c

Posted by arkgame