統計用戶下所有的表,及其字段,並標註出其相應的主鍵列有哪些。
主要注意的是,統計主鍵時,需要先進行一步篩選,否則左關聯時存在重複問題。
SELECT
--表
T.TABLE_NAME,
--表註釋
TC.COMMENTS AS TAB_COMMENT,
--字段
C.COLUMN_NAME,
--字段註釋
CC.COMMENTS AS COL_COMMENT,
--是否爲主鍵
DECODE(CON.CONSTRAINT_TYPE, 'P', '是', '否') AS PK_FLAG
FROM USER_TABLES T
LEFT JOIN USER_TAB_COMMENTS TC
ON T.TABLE_NAME = TC.TABLE_NAME
LEFT JOIN USER_TAB_COLUMNS C
ON T.TABLE_NAME = C.TABLE_NAME
LEFT JOIN USER_COL_COMMENTS CC
ON C.TABLE_NAME = CC.TABLE_NAME
AND C.COLUMN_NAME = CC.COLUMN_NAME
LEFT JOIN (SELECT CON.TABLE_NAME,
CON.COLUMN_NAME,
PK.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS CON
INNER JOIN USER_CONSTRAINTS PK
ON CON.TABLE_NAME = PK.TABLE_NAME
AND CON.CONSTRAINT_NAME = PK.CONSTRAINT_NAME
AND PK.CONSTRAINT_TYPE = 'P') CON
ON C.TABLE_NAME = CON.TABLE_NAME
AND C.COLUMN_NAME = CON.COLUMN_NAME;