我正在尝试使用SHOW CREATE TABLE通过php创建另一个表的精确副本。
我只想更改表名,但我还没想出怎么做。如果旧表的名称是table_1,我希望新表名为table_2。
这不起作用。没想到它,但那是我得到了多远:
$t = $DB->fetch("SHOW CREATE TABLE table_1");
$t[0] = "table_2";
$DB->query($t[1]);
答案 0 :(得分: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 :(得分: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
}
?>