我可以通过在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语句的查询,那么服务器的负载就会非常少。
有什么解决方案吗?
您可以编写:
ALTER TABLE `nom_table`
ADD `data1` VARCHAR(255) NULL AFTER `link`,
ADD `data2` VARCHAR(255) NULL AFTER `link`;
请参阅此处的完整语法。
但是,不能在单个查询中更改不同的表。
这对我有用……
$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/>'; }
}