
Kapitel 7: MySQL-Sprachreferenz 469
RESTRICT und CASCADE sind wegen leichterer Portierung zugelassen. Momentan tun sie
nichts.
HINWEIS: DROP TABLE ist nicht transaktionssicher und f¨uhrt automatisch jegliche aktiven
Transaktionen zuende.
7.5.7 CREATE INDEX-Syntax
CREATE [UNIQUE|FULLTEXT] INDEX index_name ON tabelle (spalten_name[(laenge)],... )
Das CREATE INDEX-Statement macht vor MySQL-Version 3.22 nichts. Ab Version 3.22 ist
CREATE INDEX auf ein ALTER TABLE-Statement gemappt, um Indexe zu erzeugen. Siehe
Abschnitt 7.5.4 [ALTER TABLE], Seite 464.
Normalerweise erzeugen Sie alle Indexe auf eine Tabelle zur Zeit, wo die Tabelle selbst
mit CREATE TABLE erzeugt wird. Siehe Abschnitt 7.5.3 [CREATE TABLE], Seite 456. CREATE
INDEX gestattet, bestehenden Tabellen Indexe hinzuzuf¨ugen.
A Spaltenliste der Form (spalte1,spalte2,...) erzeugt einen mehrspaltigen Index. Die
Indexwerte werden durch Verkettung der Werte der angegebenen Spalten erzeugt.
Bei CHAR- und VARCHAR-Spalten k¨onnen Indexe, die nur einen Teil einer Spalte benutzen,
mit der spalten_name(laenge)-Syntax erzeugt werden. (Bei BLOB- und TEXT-Spalten ist
die L¨angenangabe erforderlich.) Unten stehendes Statement zeigt, wie ein Index erzeugt
wird, der die ersten 10 Zeichen der name-Spalte benutzt:
mysql> CREATE INDEX teil_von_name ON kunde (name(10));
Weil sich die meisten Namen ¨ublicherweise in den ersten 10 Zeichen unterscheiden, sollte
dieser Index nicht viel langsamer sein, als wenn der Index aus der gesamten name-Spalte
erzeugt worden w¨are. Die Benutzung von Teilspalten f¨ur Indexe kann die Index-Datei
auch viel kleiner machen, was viel Speicherplatz sparen und zus¨atzlich INSERT-Operationen
beschleunigen kann!
Beachten Sie, dass Sie einen Index auf eine Spalte, die NULL-Werte haben darf, oder auf
eine BLOB/TEXT-Spalte erst ab MySQL-Version 3.23.2 und nur beim MyISAM-Tabellentyp
erzeugen k¨onnen.
Weitere Informationen dar¨uber, wie MySQL Indexe benutzt, finden Sie unter
Abschnitt 6.4.3 [MySQL-Indexe], Seite 349.
FULLTEXT-Indexe k¨onnen nur VARCHAR- und TEXT-Spalten indexieren und funktionieren nur
bei MyISAM-Tabellen. FULLTEXT-Indexe sind ab MySQL-Version 3.23.23 verf¨ugbar. Ab-
schnitt 7.8 [Fulltext Search], Seite 474.
7.5.8 DROP INDEX-Syntax
DROP INDEX index_name ON tabelle
DROP INDEX l¨oscht den Index namens index_name aus der Tabelle tabelle. DROP INDEX
macht vor MySQL-Version 3.22 nichts. Ab Version 3.22 ist DROP INDEX auf ein ALTER
TABLE-Statement gemappt, um den Index zu l¨oschen. Siehe Abschnitt 7.5.4 [ALTER TABLE],
Seite 464.
Comentarios a estos manuales