从mysql中提取数据以导入到图表工具

cotxawn7  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(1065)

我正在尝试导入sql来创建erd。我选择了import from 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');

如何使它只提取一个名为 jw-app ?

5sxhfpxr

5sxhfpxr1#

您的查询以where子句结束,该子句定义了t.table\u schema中要排除的值(即information\u 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';

相关问题