2012-09-03 35 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/>'; } 
}