检查数据库是否为空的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,则意味着数据库中没有表。
广告