如何在多于1列上更改表列数据类型?

JoJ*_*oJo 59 mysql alter-table

例如:

ALTER TABLE webstore.Store MODIFY COLUMN (
  ShortName VARCHAR(100),
  UrlShort VARCHAR(100)
);
Run Code Online (Sandbox Code Playgroud)

但上述方法不起作用.我正在使用MySql 5.x.

Dan*_*uis 105

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

ALTER TABLE webstore.Store
  MODIFY COLUMN ShortName VARCHAR(100),
  MODIFY COLUMN UrlShort VARCHAR(100);
Run Code Online (Sandbox Code Playgroud)

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

使用CHANGE或MODIFY时,column_definition必须包括应该应用于新列的数据类型和所有属性,而不是索引属性(如PRIMARY KEY或UNIQUE).原始定义中存在但未为新定义指定的属性不会继续使用.


Cho*_*mid 7

使用以下语法:

  ALTER TABLE your_table
  MODIFY COLUMN column1 datatype,
  MODIFY COLUMN column2 datatype,
  ... ... ... ... ... 
  ... ... ... ... ...
Run Code Online (Sandbox Code Playgroud)

基于此,您的ALTER命令应该是:

  ALTER TABLE webstore.Store
  MODIFY COLUMN ShortName VARCHAR(100),
  MODIFY COLUMN UrlShort VARCHAR(100)
Run Code Online (Sandbox Code Playgroud)

注意:

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

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

看看以下内容:http : //dev.mysql.com/doc/refman/5.1/en/alter-table.html在单个语句中更改多个列