如何修改多于一列的表列数据types?
例如:
ALTER TABLE webstore.Store MODIFY COLUMN ( ShortName VARCHAR(100), UrlShort VARCHAR(100) );
以上是不行的。 我正在使用MySql 5.x
ALTER TABLE
可以在一个语句中执行多个表格变更,但MODIFY COLUMN
一次只能在一列上工作,因此您需要为每个要更改的列指定MODIFY COLUMN
:
ALTER TABLE webstore.Store MODIFY COLUMN ShortName VARCHAR(100), MODIFY COLUMN UrlShort VARCHAR(100);
另外,请注意手册中的这个警告:
在使用CHANGE或MODIFY时,
column_definition
必须包含数据types和应用于新列的所有属性,而不是PRIMARY KEY或UNIQUE等索引属性。 原始定义中存在但未为新定义指定的属性不会继续进行。
使用以下语法:
ALTER TABLE your_table MODIFY COLUMN column1 datatype, MODIFY COLUMN column2 datatype, ... ... ... ... ... ... ... ... ... ...
基于此,你的ALTER
命令应该是:
ALTER TABLE webstore.Store MODIFY COLUMN ShortName VARCHAR(100), MODIFY COLUMN UrlShort VARCHAR(100)
注意:
-
MODIFY
语句周围没有第二个括号。 - 我为两个单独的列使用了两个单独的
MODIFY
语句。
这是MySQL表中多列的ALTER
命令的MODIFY
语句的标准格式。
看看下面的内容: http : //dev.mysql.com/doc/refman/5.1/en/alter-table.html和在一个语句中修改多个列