更改多列的列类型

时间:2012-12-21 16:11:04

标签: php mysql sql

我正在尝试将一个表中的多个列的类型更改为varchar(50)(在单个SQL查询中)。你能告诉我我做错了什么,以及为什么这个查询显示错误。

ALTER TABLE 'my_table_name' 
    ALTER COLUMN 'col1' varchar(50), 
    ALTER COLUMN 'col2' varchar(50), 
    ALTER COLUMN 'col3' varchar(50)

谢谢!

5 个答案:

答案 0 :(得分:4)

删除单引号并使用MODIFY而不是CHANGE COLUMN

ALTER TABLE my_table_name 
    MODIFY col1 varchar(50), 
    MODIFY col2 varchar(50), 
    MODIFY col3 varchar(50)

答案 1 :(得分:2)

您需要使用MODIFY并删除单引号:

ALTER TABLE my_table_name 
    MODIFY col1 varchar(50), 
    MODIFY col2 varchar(50), 
    MODIFY col3 varchar(50)

答案 2 :(得分:0)

您想要的语法是:

ALTER TABLE 'my_table_name'  
modify COLUMN 'col1' varchar(50),   
modify COLUMN 'col2' varchar(50),   
modify COLUMN 'col3' varchar(50)

答案 3 :(得分:0)

使用CHANGE您需要指定new_col_name然后col_definition

ALTER TABLE `my_table_name` 
CHANGE COLUMN `col1` `col1` varchar(50),   
CHANGE COLUMN `col2` `col2` varchar(50),   
CHANGE COLUMN `col3` `col3` varchar(50)

使用MODIFY您只需指定col_definition

ALTER TABLE `my_table_name` 
MODIFY COLUMN `col1` varchar(50),   
MODIFY COLUMN `col2` varchar(50),   
MODIFY COLUMN `col3` varchar(50)

mysql_manual

答案 4 :(得分:0)

如果只想更改列定义(不重命名),可以使用以下语法:

ALTER TABLE 'my_table_name' 
    MODIFY 'col1' varchar(50)

否则你必须使用这种语法:

ALTER TABLE 'my_table_name' 
    CHANGE 'col1old', 'col1new' varchar(50)