2012-09-03 37 views
1

我可以通过在MySQL中为每个查询写一个查询来改变表。如何在MySQL中使用单个MySQL查询更改多个表?

ALTER TABLE `nom_table` ADD `images` VARCHAR(255) NULL AFTER `link` 

但是,当我在单行写许多alter语句时,Mysql显示语法错误。

ALTER TABLE `nom_table` ADD `data1` VARCHAR(255) NULL AFTER `link` 
ALTER TABLE `nom_table` ADD `data2` VARCHAR(255) NULL AFTER `link` 

我必须这样做在PHP多次,所以如果我运行多个ALTER语句的单个查询,则服务器将是非常少装。

任何解决方案?

回答

2

你可以写:

ALTER TABLE `nom_table` 
    ADD `data1` VARCHAR(255) NULL AFTER `link`, 
    ADD `data2` VARCHAR(255) NULL AFTER `link`; 

complete syntax here

但是,您在不能更改单个查询中不同的表。

0

这对我的作品......

$ContentTables 

Array 
(
    [11] => Array 
     (
      [db_table] => Content_Tips 
      [label2] => Tip 
     ) 

/* .... same for 11 more tables... */ 


    foreach ($ContentTables as $table => $values) { 

    $thisTable = $values['db_table']; 

    $addColumns = mysql_query(" 
     ALTER TABLE $thisTable 
     ADD `ranking` INT(3) AFTER `edit_date`, 
     ADD `frequency` INT(3) AFTER `ranking` ") 

    or die('Opps...something wrong in the backroom....'.$thisTable.'...1'.mysql_error()); 

    if ($addColumns) { echo $thisTable.' has been altered...<br/>'; } 
}