Oracle 12cでテーブルの主キー (primary key)を取得する
環境
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