如何在 DB2 中查找约束列
How to find constraints columns in DB2
我想知道属于每个唯一约束的列(名称)。
我可以很容易地在 syscat.tabconst 中找到约束和表名。
但是我找不到列名。
也许这有帮助。 SYSCAT.COLCHECKS
或者这个SYSCAT.CHECKS
我猜您正在从索引中寻找唯一约束。这是我过去用来查找特定 table 的查询。你应该能够根据你正在寻找的东西来适应你的需要:
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
以下是涉及 table 的信息中心文章:
我想知道属于每个唯一约束的列(名称)。 我可以很容易地在 syscat.tabconst 中找到约束和表名。 但是我找不到列名。
也许这有帮助。 SYSCAT.COLCHECKS
或者这个SYSCAT.CHECKS
我猜您正在从索引中寻找唯一约束。这是我过去用来查找特定 table 的查询。你应该能够根据你正在寻找的东西来适应你的需要:
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
以下是涉及 table 的信息中心文章: