ALTER TABLE stellt die Tabelle auf den
        aktuellen Zeichensatz um. Wenn Sie während der Ausführung von
        ALTER TABLE einen Fehler wegen doppelt
        vorhandener Schlüssel bekommen, liegt dies entweder daran, dass
        der neue Zeichensatz zwei Schlüssel demselben Wert zuordnet,
        oder daran, dass die Tabelle beschädigt ist. Im zweiten Fall
        müssen Sie eine REPAIR TABLE-Anweisung auf
        der Tabelle ausführen.
      
        Wenn ALTER TABLE mit der folgenden
        Fehlermeldung abbricht, kann dies daran liegen, dass MySQL bei
        einer vorherigen ALTER TABLE-Operation
        abgestürzt ist und noch eine alte Tabelle namens
        A- oder
        xxxB- in der
        Gegend herumfliegt:
      xxx
Error on rename of './database/name.frm'
to './database/B-xxx.frm' (Errcode: 17)
        In diesem Fall gehen Sie in das Data Directory von MySQL und
        löschen alle Dateien, deren Namen mit A-
        oder B- anfangen. (Oder Sie verschieben sie
        an einen anderen Ort, anstatt sie zu löschen).
      
        ALTER TABLE funktioniert folgendermaßen:
      
            Erzeuge eine neue Tabelle namens
            A- mit
            den gewünschten Strukturänderungen.
          xxx
            Kopiere alle Zeilen der Originaltabelle in
            A-.
          xxx
            Benenne die Originaltabelle in
            B- um.
          xxx
            Gib A-
            den ursprünglichen Namen der Tabelle.
          xxx
            Lösche
            B-.
          xxx
        Wenn bei der Umbenennungsoperation etwas schief geht, versucht
        MySQL, die Änderungen rückgängig zu machen. Bei ernsthaften
        Problemen (die eigentlich nicht vorkommen sollten) könnte MySQL
        die alte Tabelle als
        B-
        zurücklassen. Mit einer einfachen Umbenennung der
        Tabellendateien auf Systemebene müssten Sie Ihre Daten
        zurückbekommen.
      xxx
        Wenn Sie ALTER TABLE auf einer
        transaktionssicheren Tabelle ausführen oder Windows oder OS/2
        benutzen, wird ALTER TABLE eine Sperre der
        Tabelle aufheben, falls Sie zuvor eine LOCK
        TABLE-Anweisung auf ihr ausgeführt haben, da
        InnoDB und diese Betriebssysteme keine
        Tabelle löschen können, die gerade in Gebrauch ist.
      
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

