【问题标题】:Extract data from MySQL for import to diagram tool从 MySQL 中提取数据以导入图表工具
【发布时间】:2018-11-21 07:09:18
【问题描述】:

我正在尝试导入 SQL 来创建 ERD。我选择了从 SQL 导入并将查询复制到我的 PhpMyAdmin 数据库管理员以获取相关数据库。该查询似乎提取了有关我的 MySQL 服务器中所有数据库的信息,而不仅仅是感兴趣的数据库。

这是导入 SQL 向导的代码:

SELECT  'mysql' dbms,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,
        c.ORDINAL_POSITION,c.DATA_TYPE,c.CHARACTER_MAXIMUM_LENGTH,
        n.CONSTRAINT_TYPE,k.REFERENCED_TABLE_SCHEMA,k.REFERENCED_TABLE_NAME,
        k.REFERENCED_COLUMN_NAME
    FROM  INFORMATION_SCHEMA.TABLES t
    LEFT JOIN  INFORMATION_SCHEMA.COLUMNS c  ON t.TABLE_SCHEMA=c.TABLE_SCHEMA
      AND  t.TABLE_NAME=c.TABLE_NAME
    LEFT JOIN  INFORMATION_SCHEMA.KEY_COLUMN_USAGE k  ON c.TABLE_SCHEMA=k.TABLE_SCHEMA
      AND  c.TABLE_NAME=k.TABLE_NAME
      AND  c.COLUMN_NAME=k.COLUMN_NAME
    LEFT JOIN  INFORMATION_SCHEMA.TABLE_CONSTRAINTS n  ON k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA
      AND  k.CONSTRAINT_NAME=n.CONSTRAINT_NAME
      AND  k.TABLE_SCHEMA=n.TABLE_SCHEMA
      AND  k.TABLE_NAME=n.TABLE_NAME
    WHERE  t.TABLE_TYPE='BASE TABLE'
      AND  t.TABLE_SCHEMA NOT IN('INFORMATION_SCHEMA','mysql');

如何让它只提取 1 个名为 jw-app 的数据库?

【问题讨论】:

    标签: mysql erd lucidchart


    【解决方案1】:

    您的查询以 WHERE 子句结束,该子句定义 t.TABLE_SCHEMA 中要排除的值(即 information_schema 和 mysql)。

    WHERE t.TABLE_TYPE='BASE TABLE' 
    AND t.TABLE_SCHEMA NOT 
    IN('INFORMATION_SCHEMA','mysql');
    

    您只需将其反转并指定要包含的数据库名称,或者使用

    t.TABLE_SCHEMA IN('jw_app');
    

    或者,更简单

    t.TABLE_SCHEMA = 'jw_app';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多