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

mysqlmysqli database更新于 2025/1/4 22:04:17

您可以使用 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 − 数据库示例

查询如下 −

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


相关文章


有用资源