2016-11-10 62 views
0

我想顯示的多個MySQL表的表結構(如每個表的列的列表),它像顯示錶結構

SHOW CREATE TABLE TABLE_NAME LIKE '%CATEGORY%'

我做到這一點,但它沒有特定的字符串相匹配顯示錶格的結構。

`select * from `information_schema`.`tables` 
    where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name'` 

感謝

回答

0

要獲得該表的完整結構,你需要查詢許多表中的INFORMATION_SCHEMA,而不僅僅是表。 TABLES僅包含表格的屬性,而不包含其列,索引或約束的屬性。

沒有INFORMATION_SCHEMA表顯示完整的CREATE TABLE陳述,如SHOW CREATE TABLE

SHOW CREATE TABLE只接受一個表名作爲參數。

最簡單的解決辦法是讓符合您的圖案,該表的列表:

select table_name from `information_schema`.`tables` 
where table_name like 'category%' AND TABLE_SCHEMA = 'DB_name' 

然後取一個循環,查詢的結果,並通過查詢返回的每一臺運行SHOW CREATE TABLE DBName.<table_name>

+0

這個問題是我有很多表有這個名字,這就是爲什麼我正在尋找任何方法可能是一個循環,可以一次顯示此結果。像'WhileLoop()BEGIN DECLARE table_name VARCHAR(100); SET table_name ='category'; WHILE table_name LIKE'category%'DO'Get Table names and'END WHILE;' –

+0

是的,這正是我所指的 - 循環。也許你想學習編寫一些代碼來做到這一點。您可以使用MySQL存儲過程,或者使用任何其他編程語言。由你決定。 –