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 − 데이터베이스 테스트3
쿼리는 다음과 같습니다 -
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이 나오면 데이터베이스에 테이블이 없다는 의미입니다.