在MySQL数据库模式上仅显示已填充表的列表

时间:2019-02-05 13:17:11

标签: mysql database

我正在寻找一种在MySQL数据库模式中仅显示填充表列表的方法,换句话说就是通过过滤掉所有空表来实现。

我知道我可以执行类似的操作来显示数据库模式中的所有表:

int applyCharOrder(char c){
  return "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".indexOf(c);
}

如果我想为仅显示NOT NULL表的列表添加其他WHERE条件,该怎么办?

2 个答案:

答案 0 :(得分:1)

我不知道是否有帮助,但是您可以将两个WHERE子句与AND一起使用

要过滤出空表,您可以检查表是否有如下行:

WHERE table_rows >= 1

因此完整的查询将是

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'myd_db_schema_name' AND table_rows >= 1

我还没有尝试过,但希望它能起作用。

答案 1 :(得分:0)

好的,这是解决方案:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'my_db_schema_name' AND table_rows >= 1

我使用COLUMNS而不是使用TABLES