表提供了有關數據庫中所有表的詳細信息。 您可以將其與
列的檢查結合在一起,雖然不是完全準確(在某些情況下,尤其是在InnoDB的情況下可能是一個近似值),但可以合理地表明表是否具有數據。 像這樣的查詢可以使用:information_schema
TABLES
information_schema
用數據庫的實際名稱替換TABLE_ROWS
。 大於0的表可能包含數據。 請記住,對於所有存儲引擎而言,
<code class="sql">SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_ROWS > 0;</code>>在數據庫中識別非空表的最有效方法是什麼?
> 'your_database_name'
TABLE_ROWS
識別非空表的效率在很大程度上取決於數據庫和數據庫系統本身的大小。 雖然查詢TABLE_ROWS
(或其他數據庫中的等效系統表)通常對於較小的數據庫是有效的,但對於非常大的數據庫,它可能會變得慢。
information_schema
,而不是檢查整個表索引,而不是檢查TABLE_ROWS
>
<code class="sql">SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' AND EXISTS (SELECT 1 FROM your_database_name.TABLE_NAME LIMIT 1);</code>>>
> EXISTS
EXISTS
使用'your_database_name'
>在找到第一行後停止。如果表至少有一行,則立即返回true,而無需計算所有行。 這比計算大桌子中的所有行要快得多。 請記住,用正確的值替換TABLE_NAME
>和information_schema
。您需要為每個表動態生成此查詢,或使用存儲的過程或腳本語言循環瀏覽從
是否有一個簡單的查詢可以在特定數據庫中找到具有數據的表格? 前面提到的
查詢通常是一個很好的起點:>此查詢避免計數所有行,並在找到一行時立即停止。請記住,要動態生成此查詢或在存儲過程中使用循環或腳本語言在數據庫中的所有表上迭代。 這種方法提供了一種相當簡單有效的方法來識別包含數據的表。 但是,如果不是MySQL,請記住對數據庫系統的特定語法進行調整。 PostgreSQL,SQL Server和Oracle具有自己的等效範圍,並且可能需要稍有不同的語法。 EXISTS
>
以上是如何檢查哪些表包含數據庫中的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!