2010-09-22 5 views

Antwort

82

ALTER TABLE kann in einer Anweisung mehrere Tabellenänderungen, aber MODIFY COLUMN kann nur zu einem Zeitpunkt auf eine Spalte arbeiten, so müssen Sie MODIFY COLUMN für jede Spalte angeben, die Sie ändern möchten:

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

beachten Sie auch, diese Warnung aus dem Handbuch:

Wenn Sie CHANGE verwenden oder ÄNDERN, column_definition müssen den Datentyp und alle Attribute enthalten, die auf die neue Spalte, andere als Index-Attribute wie PRIMARY gelten sollten Schlüssel oder UNI QUE. Attribute, die in der ursprünglichen Definition vorhanden sind, aber für die neue Definition nicht angegeben sind, werden nicht übernommen.

+1

Danke - Very nice !! – JoJo

2

die folgende Syntax verwenden:

ALTER TABLE your_table 
    MODIFY COLUMN column1 datatype, 
    MODIFY COLUMN column2 datatype, 
    ... ... ... ... ... 
    ... ... ... ... ... 

Auf dieser Basis Ihr ALTER Befehl sein sollte:

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

Beachten Sie, dass:

  1. Es gibt etwa keine zweite Klammern die MODIFY Aussagen.
  2. Ich verwendete zwei separate MODIFY Anweisungen für zwei separate Spalten.

Dies ist das Standardformat der MODIFY Anweisung für einen ALTER Befehl auf mehreren Spalten in einer MySQL-Tabelle.

Werfen Sie einen Blick auf die folgenden: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html und Alter multiple columns in a single statement