检查数据库是否为空的MySQL查询?


您可以使用INFORMATION_SCHEMA.COLUMNS来检查数据库是否为空。语法如下:

SELECT COUNT(DISTINCT `TABLE_NAME`) AS anyAliasName FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `table_schema` = 'yourDatabaseName';

如果数据库不为空,上述语法返回表的数量;否则返回0。在我们的示例中,我们使用了之前创建的“sample”和“test3”数据库。

第一个数据库“sample”有多个表,因此上述查询将返回表的数量。第二个数据库“test3”没有任何表,因此上述查询将返回0。

案例1 - sample 数据库

查询如下:

mysql> SELECT COUNT(DISTINCT `table_name`) AS TotalNumberOfTables FROM `information_schema`.`columns` WHERE `table_schema` = 'sample';

以下是显示其中表数量的输出,因此数据库不为空:

+---------------------+
| TotalNumberOfTables |
+---------------------+
|                 130 |
+---------------------+
1 row in set (0.01 sec)

案例2 - test3 数据库

查询如下:

mysql> SELECT COUNT(DISTINCT `table_name`) AS TotalNumberOfTables FROM `information_schema`.`columns` WHERE `table_schema` = 'test3';

以下是返回0的输出,因此数据库为空:

+---------------------+
| TotalNumberOfTables |
+---------------------+
|                   0 |
+---------------------+
1 row in set (0.00 sec)

如上所述,如果得到0,则意味着数据库中没有表。

更新于:2019年7月30日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告