2011-11-24 29 views
1

我試圖通過使用SHOW CREATE TABLE來通過php創建另一個表格的確切副本。使用SHOW CREATE TABLE創建一個帶有php和mysql的表格

我只想改變表名,但我還沒有想出如何做到這一點。如果舊錶的名稱是table_1,我希望新表名是table_2。

這沒有奏效。沒有真正期待它,但那是我得到多少:

$t = $DB->fetch("SHOW CREATE TABLE table_1"); 
    $t[0] = "table_2"; 
    $DB->query($t[1]); 

回答

2

以下查詢將創建新表,列屬性和索引也將被複制。

CREATE TABLE new_table_name LIKE old_table_name; 

如果你也想複製的行,然後執行執行上述

INSERT INTO new_table_name SELECT * FROM `old_table_name`; 

http://www.mysqlfaqs.net/mysql-faqs/Data-Back-Up/How-to-create-duplicate-table-in-MySQL

http://www.tech-recipes.com/rx/1487/copy-an-existing-mysql-table-to-a-new-table/

+1

後,下面的查詢確保你不這樣做這個,你會失去auto_increments,主鍵等等。CREATE TABLE t2 SELECT * FROM t1; –

+0

這是完美的謝謝你。 – domino

+0

@John,我只需要一張具有相同結構的表格。沒有數據。但感謝另一種方法。 – domino

0
<?php 
$result=mysql_query("SHOW TABLES"); 
$oldTableName="TABLE1"; 
$found=false; 
while($row=mysql_fetch_array($result)) 
{ 
    if($row[0]==$oldTableName) 
     { 
      $found=true; 
      break; 
     } 
} 

if($found) 
    { 
     //TODO Code for table1 
    } 
else 
{ 
     //TODO Code for table2 
} 



?>