如何获取 mysql 外键索引的元数据信息?

背景

对数据进行统一的管理处理,后续方便使用。

基本信息

见上一篇的处理。

sql 复制代码
select * from information_schema.KEY_COLUMN_USAGE where REFERENCED_TABLE_SCHEMA = 'test' \G;

*************************** 1. row ***************************
           CONSTRAINT_CATALOG: def
            CONSTRAINT_SCHEMA: test
              CONSTRAINT_NAME: user_extra_ibfk_1
                TABLE_CATALOG: def
                 TABLE_SCHEMA: test
                   TABLE_NAME: user_extra
                  COLUMN_NAME: user_id
             ORDINAL_POSITION: 1
POSITION_IN_UNIQUE_CONSTRAINT: 1
      REFERENCED_TABLE_SCHEMA: test
        REFERENCED_TABLE_NAME: users
       REFERENCED_COLUMN_NAME: id
1 row in set (0.06 sec)

字段解释

这是一个查询信息模式(information_schema)中的关键列使用情况的SQL语句,通过指定条件REFERENCED_TABLE_SCHEMA = 'test'筛选了特定的数据库(test)。

下面是查询结果的详细解释:

  1. CONSTRAINT_CATALOG: 表示外键约束所属的目录,这里是默认值 "def"。

  2. CONSTRAINT_SCHEMA: 表示外键约束所属的数据库,这里是 "test"。

  3. CONSTRAINT_NAME: 表示外键约束的名称,这里是 "user_extra_ibfk_1"。

  4. TABLE_CATALOG: 表示表所属的目录,这里是默认值 "def"。

  5. TABLE_SCHEMA: 表示表所属的数据库,这里是 "test"。

  6. TABLE_NAME: 表示表的名称,这里是 "user_extra"。

  7. COLUMN_NAME: 表示表中的列名,这里是 "user_id"。

  8. ORDINAL_POSITION: 表示列在表中的顺序位置,这里是第1列。

  9. POSITION_IN_UNIQUE_CONSTRAINT: 表示在唯一约束中的位置,这里是第1个位置。

  10. REFERENCED_TABLE_SCHEMA: 表示被引用表所属的数据库,这里是 "test"。

  11. REFERENCED_TABLE_NAME: 表示被引用表的名称,这里是 "users"。

  12. REFERENCED_COLUMN_NAME: 表示被引用表中的列名,这里是 "id"。

这个查询的结果告诉我们,在数据库 "test" 中,表 "user_extra" 中的 "user_id" 列是一个外键,它参照了表 "users" 中的 "id" 列,外键的约束名称为 "user_extra_ibfk_1"。

本文由博客一文多发平台 OpenWrite 发布!

相关推荐
蜗牛互联网2 小时前
WSL Containers GA:本地AI容器的生命周期、网络与治理验收
java·网络·人工智能·后端
龙亘川2 小时前
铭记英烈守初心,数字强基促服务:亘川智城退役军人服务系统的实践与价值
java·数据库·人工智能
OxYGC2 小时前
[AI工程] Spring AI 第廿一篇:存量 REST 接口的 MCP 化改造实录——工具从哪条路径注册、参数描述怎么写、身份怎么过去
java·人工智能·spring
Zhou1411363 小时前
SpringBoot_02_自动配置原理
java·spring boot·后端
FYKJ_20103 小时前
SSM校园失物招领系统41452-计算机课程设计、毕业设计
java·vue.js·spring boot·python·mysql·typescript·spark
kv1103 小时前
Android studio国内开发有关
java·数据库·android studio
卓怡学长3 小时前
w198基于springboot始于足下健康打卡平台的设计与实现
java·spring boot·spring·intellij-idea
阿狗童鞋4 小时前
Java并发编程实战指南
java·开发语言
Joe_Wang54 小时前
【从0到1学习JVM · 15】对象在堆里来回倒腾,究竟怎样才会进老年代?
java·jvm·学习·垃圾回收
一条小小yu4 小时前
为什么使用springboot
java·spring boot·后端