简体   繁体   English

更改多列的列类型

[英]Alter column type of multiple columns

I'm trying to change type of multiple columns in a one table to varchar(50) (in a single SQL query). 我试图将一个表中的多个列的类型更改为varchar(50)(在单个SQL查询中)。 Can you please tell me what am I doing wrong, and why this query shows error. 您能告诉我我在做什么错,为什么这个查询显示错误。

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

Thank you! 谢谢!

Remove the single quotation marks and use MODIFY not CHANGE COLUMN 删除单引号,并使用“ MODIFY而不CHANGE COLUMN

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

You need to use MODIFY and get rid of the single quotes: 您需要使用MODIFY并摆脱单引号:

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

The syntax you want is: 您想要的语法是:

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

Using CHANGE you would need to specify the new_col_name then col_definition : 使用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)

Using MODIFY you only need specify the col_definition : 使用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 mysql_manual

If you want to change column definition only (without renaming), you can use this syntax: 如果只想更改列定义(不重命名),则可以使用以下语法:

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

else you must use this syntax: 否则,您必须使用以下语法:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM