的KEY_COLUMN_USAGE
表描述哪些键列有约束。该表不提供关于功能键部分的信息,因为它们是表达式,而该表只提供关于列的信息。
的KEY_COLUMN_USAGE
表有这些列:
CONSTRAINT_CATALOG
约束所属的编目的名称。这个值总是
def
.CONSTRAINT_SCHEMA
约束所属的模式(数据库)的名称。
CONSTRAINT_NAME
约束的名称。
TABLE_CATALOG
表所属的编目的名称。这个值总是
def
.TABLE_SCHEMA
表所属的模式(数据库)的名称。
TABLE_NAME
具有约束的表的名称。
COLUMN_NAME
具有约束的列的名称。
如果约束是一个外键,那么这是外键的列,而不是外键引用的列。
ORDINAL_POSITION
列在约束中的位置,而不是列在表中的位置。列位置从1开始编号。
POSITION_IN_UNIQUE_CONSTRAINT
零
对于唯一和主键约束。对于外键约束,此列是被引用表的键中的序号位置。REFERENCED_TABLE_SCHEMA
约束引用的模式的名称。
REFERENCED_TABLE_NAME
约束引用的表的名称。
REFERENCED_COLUMN_NAME
约束引用的列的名称。
假设有两个表名t1
而且t3
有以下定义:
CREATE TABLE t1 (s1 INT, s2 INT, s3 INT, PRIMARY KEY(s3))CREATE TABLE t3 (s1 INT, s2 INT, s3 INT, KEY(s1), CONSTRAINT CO FOREIGN KEY(s2) REFERENCES t1(s3))
对于这两个表,KEY_COLUMN_USAGE
表有两行:
一行与
CONSTRAINT_NAME
=“主”
,TABLE_NAME
=“t1”
,COLUMN_NAME
=“s3”
,ORDINAL_POSITION
=1
,POSITION_IN_UNIQUE_CONSTRAINT
=零
.为
NDB
: always零
.一行与
CONSTRAINT_NAME
=“有限公司”
,TABLE_NAME
=“t3”
,COLUMN_NAME
=“s2”
,ORDINAL_POSITION
=1
,POSITION_IN_UNIQUE_CONSTRAINT
=1
.