【问题标题】:How to find foreign keys while scripting MySQL Workbench如何在编写 MySQL Workbench 脚本时查找外键
【发布时间】:2018-03-31 15:32:32
【问题描述】:

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

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

表对象上有一个“foreignKeys”属性,但它只包含指向远离表的外键,而不是指向它的外键。我想知道哪些其他表具有链接到当前表的主键的外键(最好不要遍历模型中每个其他表中的每一列)。

【问题讨论】:

    标签: mysql-workbench


    【解决方案1】:

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

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

    【讨论】:

    • 我不知道如何在 MySQL Workbench 中在没有创建数据库的模型上运行它。这可能吗?
    • 到目前为止,还没有可以从 EER 图中列出 FK 的功能。我认为上面的 SQL 是获取所需信息的最快解决方案,但您需要在临时模式中创建表 1。
    • 感谢您的回答。这不是我想要的答案。 :) 但它是准确的,你提供了我想要的下一个最好的东西。
    猜你喜欢
    • 2019-04-22
    • 1970-01-01
    • 2020-07-26
    • 2011-01-06
    • 2012-09-04
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多