0

我正在尝试导入 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

4

1 回答 1

0

您的查询以 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';
于 2018-11-22T00:23:14.230 回答