71

例えば:

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

ただし、上記は機能しません。MySql 5.x を使用しています

4

2 に答える 2

132

ALTER TABLE1 つのステートメントで複数のテーブル変更を行うことができますが、一度に 1 つの列に対してしか機能しないため、変更する列ごと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 番目の括弧はありません。
  2. MODIFY2 つの別々の列に対して 2つの別々のステートメントを使用しました。

これは、MySQL テーブルの複数の列MODIFYに対するコマンドのステートメントの標準形式です。ALTER

以下をご覧ください: http://dev.mysql.com/doc/refman/5.1/en/alter-table.htmlおよび Alter multiple columns in a single statement

于 2014-10-23T04:29:18.727 に答える