如何修改多于一列的表列数据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) 

注意:

  1. MODIFY语句周围没有第二个括号。
  2. 我为两个单独的列使用了两个单独的MODIFY语句。

这是MySQL表中多列的ALTER命令的MODIFY语句的标准格式。

看看下面的内容: http : //dev.mysql.com/doc/refman/5.1/en/alter-table.html和在一个语句中修改多个列