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

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

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

如果数据库值得注意,则上面的语法返回0,否则返回表数。对于我们的示例,我们使用之前创建的数据库“ sample”和“ test3”。

第一个数据库“样本”具有更多表,因此上面的查询将返回许多表。第二个数据库“ test3”没有任何表,因此上述查询将返回0。

情况1-数据库样本

查询如下-

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,则意味着数据库中没有表。