PythonQ 240-8XX Manual de usuario Pagina 488

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 487
Kapitel 7: MySQL-Sprachreferenz 467
Wenn Sie einen UNIQUE INDEX oder PRIMARY KEY zu einer Tabelle hinzuf¨ugen,
wird dieser vor jedem Nicht-UNIQUE-Index gespeichert, so dass MySQL doppelte
Schl¨usseleintr¨age so fr¨uh wie oglich feststellen kann.
ORDER BY gestattet Ihnen, eine Tabelle mit Zeilen in einer bestimmten Reihenfolge zu
erzeugen. Beachten Sie, dass die Tabelle nach INSERTs und DELETEs nicht in dieser
Reihenfolge verbleibt. In einigen allen kann es das Sortieren f¨ur MySQL erleichtern,
wenn die Tabelle nach der Spalte geordnet ist, nach der Sie sie sp¨ater ordnen wollen.
Diese Option ist haupts¨achlich n¨utzlich, wenn Sie wissen, dass Sie die Zeilen meis-
tens in einer bestimmten Reihenfolge abfragen werden. Wenn Sie diese Option nach
großen
¨
Anderungen in der Tabelle benutzen, onnen Sie oglicherweise eine ohere
Performance erzielen.
Wenn Sie ALTER TABLE auf einer MyISAM-Tabelle benutzen, werden alle nicht eindeuti-
gen Indexe in einem separaten Stapellauf erzeugt (wie bei REPAIR). Das sollte ALTER
TABLE viel schneller machen, wenn Sie viele Indexe haben.
Ab MySQL 4.0 kann dies explizit aktiviert werden. ALTER TABLE ... DISABLE KEYS ve-
ranlasst MySQL, mit der Aktualisierung nicht eindeutiger Indexe f¨ur MyISAM-Tabellen
aufzuh¨oren. ALTER TABLE ... ENABLE KEYS sollte dann 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.
Mit der C-API-Funktion mysql_info() onnen Sie herausfinden, wie viele Datens¨atze
kopiert wurden und (wenn IGNORE benutzt wird) wie viele Datens¨atze aufgrund der
Duplizierung eindeutiger Schl¨usselwerte gel¨oscht wurden.
Die FOREIGN KEY-, CHECK- und REFERENCES-Klauseln machen nichts. Die Syntax f¨ur sie
steht nur aus Kompatibilit¨atsgr¨unden bereit, um das Portieren von Code von anderen
SQL-Servern zu erleichtern und um Applikationen laufen zu lassen, die Tabellen mit
Referenzen erzeugen. Siehe Abschnitt 2.7.4.5 [ANSI diff Foreign Keys], Seite 43.
Hier ist ein Beispiel, das einige der Anwendungsf¨alle von ALTER TABLE zeigt. Wir fangen
mit einer Tabelle t1 an, die wie folgt erzeugt wird:
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));
Um die Tabelle von t1 nach t2 umzubenennen, geben Sie ein:
mysql> ALTER TABLE t1 RENAME t2;
Um Spalte a von INTEGER nach TINYINT NOT NULL zu ¨andern (der Name bleibt derselbe)
und Spalte b von CHAR(10) nach CHAR(20) zu ¨andern und gleichzeitig von b nach c umzube-
nennen, geben Sie ein:
mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
Jetzt wird eine TIMESTAMP-Spalte namens d hinzugef¨ugt:
mysql> ALTER TABLE t2 ADD d TIMESTAMP;
Nunmehr erzeugen wir einen Index auf Spalte d und machen Spalte a zum Prim¨arschl¨ussel:
mysql> ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
Wir entfernen Spalte c:
mysql> ALTER TABLE t2 DROP COLUMN c;
Und f¨ugen eine neue AUTO_INCREMENT-Ganzzahl-Spalte namens c hinzu:
Vista de pagina 487
1 2 ... 483 484 485 486 487 488 489 490 491 492 493 ... 767 768

Comentarios a estos manuales

Sin comentarios