1

我可以通过在 MySQL 中为每个表编写一个查询来更改表。

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

但是当我在单行中编写许多更改语句时,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 语句运行单个查询,那么服务器的负载将非常少。

有什么解决办法吗?

4

2 回答 2

2

你可以写:

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

请参阅此处的完整语法

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

于 2012-09-03T19:21:04.870 回答
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/>'; }
}
于 2013-07-01T14:50:10.870 回答