2012-12-05 34 views

回答

1

Devart是正確的,你不能加入到SHOW CREATE聲明。 但是,根據您的確切需求,您可以通過創建您自己的SHOW CREATE聲明來欺騙此。

如果您需要包含數據庫引擎,列和表歸類,索引等,代碼的複雜性將會增加 - 但是下面的SQL將爲您提供正確的表和字段,並帶有數據類型。我相信你可以通過更深入地檢查information_schema.columns的內容來進一步擴展它。

SELECT CONCAT('CREATE TABLE `',t.TABLE_NAME,'` ', 
    GROUP_CONCAT(CONCAT(c.COLUMN_NAME,' ',c.COLUMN_TYPE,' ',c.EXTRA) SEPARATOR ','),';') AS CreateStatement 
FROM information_schema.tables t 
INNER JOIN information_schema.columns c 
    ON t.TABLE_NAME=c.TABLE_NAME 
/* WHERE STATEMENT IF NEEDED */; 

輸出示例:

CREATE TABLE `answers` rowid int(11) auto_increment, 
    id int(11) ,username varchar(200) ,answer varchar(2000) ; 
1

沒有辦法以這種方式做到這一點。 SHOW CREATE TABLE命令檢索數據集,但結果不能與另一個表連接。對於應用程序中需要的每個表,執行SHOW CREATE TABLE作爲單獨的命令。

0

我跟着這個鏈接http://sql-info.de/mysql/examples/CREATE-TABLE-examples.html

SHOW CREATE TABLE應該返回的列結果:表名()和相應的創建表的腳本文本。

然後,它應該是這個樣子:

SELECT * 
FROM information_schema.`tables` ts 
INNER JOIN (SHOW CREATE TABLE) sct 
ON(ts.table_name=sct.table) 
WHERE table_schema LIKE 'tables\_%' 

我希望這有助於。我目前無法嘗試。

相關問題