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