2017-06-25 66 views
0

我想獲得數據庫的列表以及每個數據庫的大小!我試了很多疑問和下面一個作品,但它只會顯示有我的數據庫至少有一個記錄,或者,換句話說,這將只具有列表數據庫規模超過0.1即使數據庫大小爲0.000MB,如何獲取MySQL數據庫列表?

下面是該查詢:

SELECT table_schema 'database', sum(data_length + index_length)/1024/1024 'size' FROM information_schema.TABLES GROUP BY table_schema; 

很明顯,我不會使用此查詢來獲取具有0個表的數據庫的列表,因爲它在information_schema表中查找表和它的大小。

我該如何修改這個查詢來讓我看到沒有表的數據庫?我已經嘗試了與MySQL數據庫大小相關的StackOverflow問題上給出的每個查詢。

更新:我在PHP中工作,如果完整查詢不可用,請向我展示一種方法來獲取具有大小的數據庫列表,即使PHP以任何方式可能。

回答

0

即使對於沒有表的模式,您也可以從SCHEMATA表中獲得模式列表。

SELECT s.schema_name AS 'database', 
    SUM(t.data_length + t.index_length)/1024/1024 AS 'size' 
FROM INFORMATION_SCHEMA.SCHEMATA AS s 
LEFT OUTER JOIN INFORMATION_SCHEMA.TABLES AS t ON s.schema_name=t.table_schema 
GROUP BY s.schema_name; 
+0

我不是那麼專業的SQL,這是我運行此查詢後得到的錯誤。糾正我'#1054 - 'on'子句''中的未知列's.schema.name'... –

+0

我的道歉,我在連接條件中有一個錯字。我已經修復它。如果您需要使用它,您可能需要學習SQL。 –

相關問題