0

我想使用 php 更改我的字段注释,但是有一个问题!

我需要获取其他专栏的功能:|

这是我的代码(获取所有列功能):

$query = "
        SELECT 
            *
            FROM information_schema.COLUMNS
                WHERE 
                    TABLE_SCHEMA = '$dbName' AND 
                    TABLE_NAME = '$tableName' AND 
                    COLUMN_NAME = '".$row->name."'";

    $result = mysql_query($query) or die($query.'<br>'.mysql_error());
    $tempRow = mysql_fetch_object($result);

这是我更改评论的代码

 $query = "ALTER TABLE `$tableName` 
            MODIFY  `".$row->name."` 
            ".$tempRow->COLUMN_TYPE." 
            DEFAULT ".$tempRow->COLUMN_DEFAULT."
            COMMENT '$comment'"   ;


        $result = mysql_query($query) or die($query.'<br>'.mysql_error());

但问题是我失去了一些功能,例如,outo increment,主键......

有什么方法我不需要编写所有功能,只需更改更新查询之类的评论?!如果不是我应该如何更正这个查询?!

4

2 回答 2

1

对此感到抱歉,但没有办法只更改单个功能。您始终必须指定该列具有的所有特征。因此,扩展您的查询以反映所有列的功能。你需要的一切都应该在$tempRow.

于 2013-01-30T13:47:12.540 回答
0
        if ($tempRow->IS_NULLABLE == "NO")
        {
            $nullStr =" Not null ";
        }else
        {
            $nullStr ="  null ";
        }            

        if (strlen($tempRow->COLUMN_DEFAULT) >0 )
        {
            $defaultStr = "DEFAULT ".$tempRow->COLUMN_DEFAULT;
        }else
        {
            $defaultStr ="  ";
        }

        if (strlen($tempRow->COLLATION_NAME )>0)
        {
            $collateStr = "collate " . $tempRow->COLLATION_NAME ;
        }
         $comment .= implode("|",$info);
        $query = "ALTER TABLE `$tableName` 
            MODIFY  `".$row->name."` 
            ".$tempRow->COLUMN_TYPE." 
            ".$nullStr."
            ".$extraStr."
            ".$defaultStr."
            ". $tempRow->EXTRA."
            ". $collateStr."

            COMMENT '$comment'"   ;
于 2013-02-02T07:00:52.670 回答