2017-10-19 117 views
3

我在MySQL Workbench中创建了一个DB模型和EER图。我使用工作台脚本功能编写脚本来生成代码,以便在MySQL服务器上导出和创建数据库后使用该数据库。如何在脚本编写MySQL Workbench时找到外键

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

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

回答

3

您可以使用下面的查询来检索数据库中的所有约束/外键..

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'; 
+0

我没有看到我如何在没有创建数据库的模型上的MySQL Workbench中运行此功能。那可能吗? –

+0

到目前为止,没有功能可以从EER图表中列出FK。我认为上面的SQL是获得所需信息的最快捷的解决方案,但是您需要在临时模式中创建表1st。 – Sh4m

+1

谢谢你的回答。这不是我想要的答案。 :)但它是准确的,你提供了我想要的下一个最好的东西。 –