
468 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD INDEX (c);
Beachten Sie, dass wir c indiziert haben, weil AUTO_INCREMENT-Spalten indiziert sein
m¨ussen, und auch, dass wir c als NOT NULL deklariert haben, weil indizierte Spalten nicht
NULL sein d¨urfen.
Wenn Sie eine AUTO_INCREMENT-Spalte hinzuf¨ugen, werden automatisch Spaltenwerte mit
Zahlenfolgen eingef¨ugt. Sie k¨onnen die erste Zahl setzen, indem Sie SET INSERT_ID=# vor
ALTER TABLE ausf¨uhren oder indem Sie die AUTO_INCREMENT = #-Tabellenoption benutzen.
Siehe Abschnitt 6.5.6 [SET OPTION], Seite 361.
Wenn Sie bei MyISAM-Tabellen nicht die AUTO_INCREMENT-Spalte ¨andern, ist die Folgezahl
davon nicht betroffen. Wenn Sie eine AUTO_INCREMENT-Spalte l¨oschen und dann eine weitere
AUTO_INCREMENT-Spalte hinzuf¨ugen, fangen die Zahlen wieder bei 1 an.
Siehe Abschnitt A.6.1 [ALTER TABLE problems], Seite 644.
7.5.5 RENAME TABLE-Syntax
RENAME TABLE tabelle TO neue_tabelle[, tabelle2 TO neue_tabelle2,...]
Das Umbenennen wird atomisch durchgef¨uhrt, was heißt, dass kein anderer Thread auf die
Tabelle(n) zugreifen kann, w¨ahrend umbenannt wird. Das erm¨oglicht, eine Tabelle durch
eine leere zu ersetzen:
CREATE TABLE neue_tabelle (...);
RENAME TABLE alte_tabelle TO datensicherung_tabelle, neue_tabelle TO alte_tabelle;
Das Umbenennen wird von links nach rechts durchgef¨uhrt, was bedeutet, dass Sie beim
Vertauschen zweier Tabellennamen folgendes tun k¨onnen:
RENAME TABLE alte_tabelle TO datensicherung_tabelle,
neue_tabelle TO alte_tabelle,
datensicherung_tabelle TO neue_tabelle;
Solange zwei Datenbanken auf derselben Platte liegen, k¨onnen Sie auch von einer Datenbank
in eine andere umbenennen:
RENAME TABLE aktuelle_datenbank.tabelle TO andere_datenbank.tabelle;
Wenn Sie RENAME ausf¨uhren, d¨urfen Sie keine gesperrten Tabellen oder aktive Transaktionen
haben. Ausserdem ben¨otigen Sie die ALTER- und DROP-Berechtigungen f¨ur die Original-
Tabelle und die CREATE- und INSERT-Berechtigungen auf die neue Tabelle.
Wenn beim Umbenennen mehrfacher Tabellen Fehler auftreten, f¨uhrt MySQL ein entge-
gengesetztes Umbenennen aller umbenannten Tabellen durch, um alles wieder in den Aus-
gangszustand zu versetzen.
7.5.6 DROP TABLE-Syntax
DROP TABLE [IF EXISTS] tabelle [, tabelle,...] [RESTRICT | CASCADE]
DROP TABLE entfernt eine oder mehrere Tabellen. Alle Tabellendaten und die Tabellendefi-
nition werden zerst¨ort, seien Sie daher vorsichtig mit diesem Befehl!
Ab MySQL-Version 3.22 k¨onnen Sie die Schl¨usselw¨orter IF EXISTS benutzen, um Fehler zu
vermeiden, die auftreten, wenn Tabellen nicht existieren.
Komentáře k této Příručce