71

例如:

ALTER TABLE webstore.Store MODIFY COLUMN (
  ShortName VARCHAR(100),
  UrlShort VARCHAR(100)
);

然而,上述方法不起作用。我正在使用 MySql 5.x

4

2 回答 2

132

ALTER TABLE可以在一个语句中进行多个表更改,但MODIFY COLUMN一次只能处理一列,因此您需要为MODIFY COLUMN要更改的每一列指定:

ALTER TABLE webstore.Store
  MODIFY COLUMN ShortName VARCHAR(100),
  MODIFY COLUMN UrlShort VARCHAR(100);

另外,请注意手册中的此警告:

当您使用 CHANGE 或 MODIFY 时,column_definition必须包括应应用于新列的数据类型和所有属性,而不是 PRIMARY KEY 或 UNIQUE 等索引属性。原始定义中存在但未为新定义指定的属性不会结转。

于 2010-09-22T20:47:47.847 回答
7

使用以下语法:

  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 表中多个列上MODIFY的命令语句的标准格式。ALTER

看看以下内容: http: //dev.mysql.com/doc/refman/5.1/en/alter-table.htmlAlter multiple columns in a single statement

于 2014-10-23T04:29:18.727 回答