在编写MySQL Workbench脚本时如何查找外键

时间:2017-10-19 14:38:58

标签: mysql-workbench

我在MySQL Workbench中创建了一个DB Model和EER图。我正在使用工作台脚本编写功能编写脚本以生成代码,以便在MySQL服务器上导出和创建数据库后使用该数据库。

当我循环遍历表时,有什么办法可以找到链接到当前表的外键吗?

有一个' foreignKeys'表对象上的属性,但它只包含指向表中的AWAY的外键,而不是指向它的那些外键。我想知道其他表有哪些外键链接到当前表的主键(理想情况下没有循环遍历模型中每个其他表中的每一列)。

1 个答案:

答案 0 :(得分:3)

您可以使用以下查询来检索DB中的所有约束/外键。

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = 'database_name';

更具体地针对您的问题,您可以使用以下查询..

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = 'database_name' AND
  REFERENCED_TABLE_NAME = 'table_name';