I need to check if a database is totally empty (no tables) using an SQL query. How can this be done?
Thanks for the help!
"select * from information_schema.tables" will give you a list of tables on most databases.
In Oracle: select Count(*) from user_tables
In MYSQL:
use DATABASE;
show tables;
SQLServer implementation:
USE database_name
SELECT COUNT(*) from information_schema.tables
WHERE table_type = 'base table'
If you're using SQL Server 2005 or greater, you can use one of the system views to acheive this for the current db:
select Count(*)
from sys.tables
where [type] = 'U'
To get a list of all databases without tables in MySQL:
use information_schema
select schema_name from `schemata` s
left join `tables` t on s.schema_name = t.table_schema
where t.table_name is null
;
Cheers, Christian