28.3.16 INFORMATION_SCHEMA KEY_COLUMN_USAGE 表

2024年 7月 1日 44.3k 0

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

    NULL对于唯一和主键约束。对于外键约束,此列是所引用表的键中的序数位置。

  • REFERENCED_TABLE_SCHEMA

    约束引用的架构的名称。

  • REFERENCED_TABLE_NAME

    约束引用的表的名称。

  • REFERENCED_COLUMN_NAME

    约束引用的列的名称。

假设有两个表名t1t3具有以下定义:

解释CREATE TABLE t1
(
s1 INT,
s2 INT,
s3 INT,
PRIMARY KEY(s3)
) ENGINE=InnoDB;

CREATE TABLE t3
(
s1 INT,
s2 INT,
s3 INT,
KEY(s1),
CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)
) ENGINE=InnoDB;

对于这两个表, KEY_COLUMN_USAGE表有两行:

  • 一行包含CONSTRAINT_NAME= 'PRIMARY'TABLE_NAME= 't1'COLUMN_NAME= 's3'ORDINAL_POSITION= 1POSITION_IN_UNIQUE_CONSTRAINT= NULL

    对于NDB:此值始终为 NULL

  • 一行包含CONSTRAINT_NAME= 'CO'TABLE_NAME= 't3'COLUMN_NAME= 's2'ORDINAL_POSITION= 1POSITION_IN_UNIQUE_CONSTRAINT= 1

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论