我正在尝试将一个表中的多个列的类型更改为varchar(50)(在单个SQL查询中)。你能告诉我我做错了什么,以及为什么这个查询显示错误。
ALTER TABLE 'my_table_name'
ALTER COLUMN 'col1' varchar(50),
ALTER COLUMN 'col2' varchar(50),
ALTER COLUMN 'col3' varchar(50)
谢谢!
答案 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)
答案 4 :(得分:0)
如果只想更改列定义(不重命名),可以使用以下语法:
ALTER TABLE 'my_table_name'
MODIFY 'col1' varchar(50)
否则你必须使用这种语法:
ALTER TABLE 'my_table_name'
CHANGE 'col1old', 'col1new' varchar(50)