466 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
f¨ur die MyISAM-Tabelle aufzuh¨oren. Dann sollte ALTER TABLE ... ENABLE KEYS
benutzt werden, um fehlende Indexe wieder zu erzeugen. Weil MySQL das mit
Algorithmen durchf¨uhrt, die viel schneller sind als das Einf¨ugen von Schl¨usseln
nacheinander, kann das Abschalten von Schl¨usseln bei Masseneinf¨ugeoperationen
erheblich Geschwindigkeitsvorteile bringen.
• create_definition-Klauseln benutzen dieselbe Syntax f¨ur ADD und CHANGE wie bei
CREATE TABLE. Beachten Sie, dass diese Syntax den Spaltenname beinhaltet, nicht nur
den Spaltentyp. Siehe Abschnitt 7.5.3 [CREATE TABLE], Seite 456.
• Sie k¨onnen eine Spalte mit einer CHANGE alter_spalten_name create_definition-
Klausel umbenennen. Um das zu tun, geben Sie den alten und den neuen Spaltennamen
und den Typ an, den die Spalte momentan hat. Um beispielsweise eine INTEGER-Spalte
von a nach b umzubenennen, tun Sie folgendes:
mysql> ALTER TABLE t1 CHANGE a b INTEGER;
Wenn Sie einen Spaltentyp, nicht aber den Namen ¨andern wollen, ben¨otigt CHANGE
dennoch zwei Spaltennamen, selbst wenn sie dieselben sind. Beispiel:
mysql> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
Ab MySQL-Version 3.22.16a k¨onnen Sie jedoch auch MODIFY benutzen, um einen Spal-
tentyp ohne Umbenennung zu ¨andern:
mysql> ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
• Wenn Sie CHANGE oder MODIFY benutzen, um eine Spalte zu k¨urzen, f¨ur die es einen
Index auf einem Teil der Spalte gibt (wenn Sie zum Beispiel einen Index auf den ersten
10 Zeichen einer VARCHAR-Spalte haben), k¨onnen Sie die Spalte nicht k¨urzer als die
Anzahl von Zeichen machen, die indiziert sind.
• Wenn Sie versuchen, einen Spaltentyp mit CHANGE oder MODIFY zu ¨andern, versucht
MySQL, Daten so umzuwandeln, dass sie so gut wie m¨oglich zum neuen Typ passen.
• AB MySQL-Version 3.22 k¨onnen Sie FIRST oder ADD ... AFTER spalten_name be-
nutzen, um eine Spalte an einer bestimmten Position innerhalb einer Tabellenzeile
einzuf¨ugen. Vorgabem¨aßig wird die Spalte am Ende hinzugef¨ugt.
• ALTER COLUMN gibt einen Vorgabewert f¨ur eine Spalte an oder entfernt den alten Vor-
gabewert. Wenn der alte Vorgabewert entfernt wird und die Spalte NULL sein darf, ist
der neue Vorgabewert NULL. Wenn die Spalte nicht NULL sein darf, weist MySQL einen
Vorgabewert zu, wie in Abschnitt 7.5.3 [CREATE TABLE], Seite 456 beschrieben.
• DROP INDEX entfernt einen Index. Das ist eine MySQL-Erweiterung zu ANSI-SQL92.
Siehe Abschnitt 7.5.8 [DROP INDEX], Seite 469.
• Wenn Spalten aus einer Tab elle gel¨oscht werden, werden sie auch aus jeglichen Indexen
entfernt, deren Teil sie sind. Wenn alle Spalten, aus denen ein Index besteht, gel¨oscht
werden, wird der Index ebenfalls gel¨oscht.
• Wenn eine Tabelle nur eine Spalte enth¨alt, kann die Spalte nicht gel¨oscht werden. Wenn
Sie beabsichtigen, die Tabelle zu entfernen, benutzen Sie statt dessen DROP TABLE.
• DROP PRIMARY KEY l¨oscht den Prim¨arschl¨ussel. Wenn es keinen solchen gibt, l¨oscht es
den ersten UNIQUE-Index in der Tabelle. (MySQL kennzeichnet den ersten UNIQUE-
Schl¨ussel als PRIMARY KEY, wenn PRIMARY KEY nicht explizit angegeben wurde.)
Comentarios a estos manuales