mysql怎么查外键关联
时间 : 2023-03-13 06:53:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在MySQL中查找表之间的外键关联很简单,可以使用以下两个命令:

1. 查看外键约束的名称

```sql

SHOW CREATE TABLE 表名;

该命令将返回表的创建语句。当有外键约束时,它将在语句中声明。可以从这个声明中找到外键的名称和引用表的名称。

例如:

```sql

SHOW CREATE TABLE customer_order;

输出:

```sql

CREATE TABLE `customer_order` (

`order_id` int(11) NOT NULL,

`customer_id` int(11) NOT NULL,

`order_date` date NOT NULL,

PRIMARY KEY (`order_id`),

KEY `fk_customer_id` (`customer_id`),

CONSTRAINT `fk_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`)

)

在这个输出结果中,`fk_customer_id` 是外键的名称,`customer` 是引用表的名称。

2. 查看外键的详细信息

```sql

SELECT

CONSTRAINT_NAME,

TABLE_NAME,

COLUMN_NAME,

REFERENCED_TABLE_NAME,

REFERENCED_COLUMN_NAME

FROM

INFORMATION_SCHEMA.KEY_COLUMN_USAGE

WHERE

REFERENCED_TABLE_NAME = '引用表名';

该命令将列出所有引用指定引用表的外键的详细信息。

例如:

```sql

SELECT

CONSTRAINT_NAME,

TABLE_NAME,

COLUMN_NAME,

REFERENCED_TABLE_NAME,

REFERENCED_COLUMN_NAME

FROM

INFORMATION_SCHEMA.KEY_COLUMN_USAGE

WHERE

REFERENCED_TABLE_NAME = 'customer';

输出:

```sql

+----------------+---------------+---------------+----------------------+-----------------------+

| CONSTRAINT_NAME| TABLE_NAME | COLUMN_NAME | REFERENCED_TABLE_NAME| REFERENCED_COLUMN_NAME|

+----------------+---------------+---------------+----------------------+-----------------------+

| fk_customer_id | customer_order| customer_id | customer | customer_id |

+----------------+---------------+---------------+----------------------+-----------------------+

在这个输出结果中,`fk_customer_id` 是外键的名称,`customer_order` 是指定表,`customer_id` 是指定表中的外键列,`customer` 是引用表,`customer_id` 是引用表中的关联列。

总之,这两个命令可以帮助你在MySQL中查找表之间的外键关联。

在MySQL中,可以通过以下方式来查看外键的关联:

1. 使用 SHOW CREATE TABLE 命令查看表的建表语句,其中包含外键的定义。

例如,要查看名为 student 的表的外键定义,可以使用以下命令:

SHOW CREATE TABLE student;

这将返回一个包含表构造语句的结果集,其中包含外键定义。可以在结果集中搜索 FOREIGN KEY 关键字来查找外键定义。

2. 使用 INFORMATION_SCHEMA 系统数据库的表查询,查找所有外键关联。

可以使用以下命令来查找 student 表中所有外键关联:

SELECT

CONSTRAINT_NAME,

COLUMN_NAME,

REFERENCED_TABLE_NAME,

REFERENCED_COLUMN_NAME

FROM

INFORMATION_SCHEMA.KEY_COLUMN_USAGE

WHERE

TABLE_NAME = 'student' AND

REFERENCED_TABLE_NAME IS NOT NULL;

此命令将返回表 student 中所有外键关联的详细信息,包括外键名称、关联列、引用的表和列。

3. 使用 SHOW TABLE STATUS 命令查看表的状态,其中包含外键的信息。

例如,要查看名为 student 的表的状态,可以使用以下命令:

SHOW TABLE STATUS LIKE 'student';

此命令将返回一个包含表状态信息的结果集,其中包含外键信息。可以在结果集中搜索 FOREIGN KEY 关键字来查找外键信息。

综上所述, MySQL 中可以通过以上三种方式来查看外键关联。其中,使用 INFORMATION_SCHEMA 系统数据库的表查询可以查找到更详细的外键信息。