mad*_*nho 3 db2 constraints db2-luw
我想知道属于每个唯一约束的列(名称)。我可以在syscat.tabconst中轻松找到约束和表名。但是我找不到列名称。
我猜您正在从索引中寻找唯一约束。这是我过去用来查找特定表的查询。您应该能够根据所需的内容适应所需的内容:
SELECT
T.TABSCHEMA AS TABLE_SCHEMA
,T.TABNAME AS TABLE_NAME
,CASE T.TYPE
WHEN 'F' THEN 'Foreign Key'
WHEN 'I' THEN 'Functional Dependency'
WHEN 'K' THEN 'Check'
WHEN 'P' THEN 'Primary Key'
WHEN 'U' THEN 'Unique'
END AS Type
,I.INDSCHEMA AS INDEX_SCHEMA
,I.INDNAME AS INDEX_NAME
,U.COLNAME AS COLUMN_NAME
,U.COLSEQ AS COLUMN_ORDINAL
,CASE U.COLORDER
WHEN 'A' THEN 'Ascending'
WHEN 'D' THEN 'Descending'
WHEN 'I' THEN 'Included (unordered)'
END AS COLUMN_SORRING
FROM SYSCAT.TABCONST T
JOIN SYSCAT.CONSTDEP C
ON T.CONSTNAME = C.CONSTNAME
JOIN SYSCAT.INDEXES I
ON C.BSCHEMA = I.INDSCHEMA
AND C.BNAME = I.INDNAME
JOIN SYSCAT.INDEXCOLUSE U
ON I.INDSCHEMA = U.INDSCHEMA
AND I.INDNAME = U.INDNAME
WHERE T.TABSCHEMA = @schema
AND T.TABNAME = @table
AND C.BTYPE = 'I' --Indexes Only
ORDER BY
T.TABSCHEMA
,T.TABNAME
,I.INDSCHEMA
,I.INDNAME
,U.COLSEQ
Run Code Online (Sandbox Code Playgroud)
以下是有关表的信息中心文章:
| 归档时间: |
|
| 查看次数: |
15205 次 |
| 最近记录: |