返回顶部
首页 > mysql如何查看外键名
  • 2
分享到

mysql如何查看外键名

2024年03月26日 2人浏览 编程网

一、摘要

在 MySQL 中,外键用于建立两个表之间的关系,它确保子表中的数据与主表中的相关数据一致。可以通过多种方式查看外键名,包括:

  • 使用 INFORMATION_SCHEMA 数据库
  • 使用 SHOW CREATE TABLE 语句
  • 使用 EXPLAIN 语句

二、详细说明

1. 使用 INFORMATION_SCHEMA 数据库

INFORMATION_SCHEMA 数据库包含有关 MySQL 数据库元数据的各种信息,包括外键约束。要使用 INFORMATION_SCHEMA 查看外键名,可以使用以下查询:

SELECT
  TABLE_NAME,
  COLUMN_NAME,
  REFERENCED_TABLE_NAME,
  REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_NAME IS NOT NULL;

其中:

  • TABLE_NAME 是具有外键约束的表的名称。
  • COLUMN_NAME 是具有外键约束的列的名称。
  • REFERENCED_TABLE_NAME 是被引用的表的名称。
  • REFERENCED_COLUMN_NAME 是被引用的列的名称。

2. 使用 SHOW CREATE TABLE 语句

SHOW CREATE TABLE 语句显示有关表的创建语句的信息,包括外键约束。要使用 SHOW CREATE TABLE 查看外键名,可以使用以下语法:

SHOW CREATE TABLE table_name;

其中 table_name 是要检查的表的名称。

在输出中查找类似于以下内容的行:

CONSTRAINT fk_column_name FOREIGN KEY (column_name) REFERENCES referenced_table_name (referenced_column_name)

其中:

  • fk_column_name 是外键约束的名称。
  • column_name 是具有外键约束的列的名称。
  • referenced_table_name 是被引用的表的名称。
  • referenced_column_name 是被引用的列的名称。

3. 使用 EXPLAIN 语句

EXPLAIN 语句显示有关查询执行计划的信息,包括有关外键约束的详细信息。要使用 EXPLAIN 查看外键名,可以使用以下语法:

EXPLAIN SELECT * FROM table_name;

其中 table_name 是要检查的表的名称。

在输出中查找包含 Using index 的行,它会显示用于查询的索引。如果索引基于外键约束,则可以使用 referenced_column_name 关键字查看被引用的列名。

示例

考虑以下表结构:

CREATE TABLE orders (
  order_id INT NOT NULL AUTO_INCREMENT,
  customer_id INT NOT NULL,
  FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);

CREATE TABLE customers (
  customer_id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL
);

使用 INFORMATION_SCHEMA 查看外键名:

SELECT
  TABLE_NAME,
  COLUMN_NAME,
  REFERENCED_TABLE_NAME,
  REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_NAME IS NOT NULL;

输出:

TABLE_NAME | COLUMN_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME
----------------------------------------------------------------------------------
orders | customer_id | customers | customer_id

使用 SHOW CREATE TABLE 查看外键名:

SHOW CREATE TABLE orders;

输出:

CREATE TABLE `orders` (
  `order_id` int(11) NOT NULL AUTO_INCREMENT,
  `customer_id` int(11) NOT NULL,
  PRIMARY KEY (`order_id`),
  CONSTRAINT `fk_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`customer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

使用 EXPLAIN 查看外键名:

EXPLAIN SELECT * FROM orders;

输出:

id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra
----------------------------------------------------------------------------------------------------------------
1 | SIMPLE | orders | NULL | index | fk_customer_id,orders_ibfk_1 | fk_customer_id | 4 | customers.customer_id | 10 | 100.00 | Using index condition; Using where; Using join buffer

EXPLAIN 输出中,fk_customer_id 关键字表示用于查询的索引基于外键约束。

以上就是mysql如何查看外键名的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: mysql如何查看外键名

本文链接: https://www.lsjlt.com/wiki/ced638955b.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作