我在MySQL Workbench中创建了一个DB Model和EER图。我正在使用工作台脚本编写功能编写脚本以生成代码,以便在MySQL服务器上导出和创建数据库后使用该数据库。
当我循环遍历表时,有什么办法可以找到链接到当前表的外键吗?
有一个' foreignKeys'表对象上的属性,但它只包含指向表中的AWAY的外键,而不是指向它的那些外键。我想知道其他表有哪些外键链接到当前表的主键(理想情况下没有循环遍历模型中每个其他表中的每一列)。
答案 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';