一、摘要
在 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文档到电脑,方便收藏和打印~
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0