8.5.2 Primärschlüssel, Indizes und Einschränkungen mit CONSTRAINT
8.5.3 Tabelle ändern
Bei Bedarf können Sie eine Tabelle und ihre Felder auch nachträglich ändern. Die Syntax für die ALTER TABLE-Anweisung lautet folgendermaßen:
ALTER TABLE Tabelle {ADD {COLUMN Feld Typ[(Größe)] [NOT NULL] [CONSTRAINT Index] | ALTER COLUMN Feld Typ[(Größe)] | CONSTRAINT Mehrfeldindex} | DROP {COLUMN Feld I CONSTRAINT Indexname} }
Daraus lassen sich die drei Funktionen aus den folgenden Abschnitten ableiten.
Hinzufügen eines Feldes
Um ein Feld einer bestehenden Tabelle hinzuzufügen, verwenden Sie beispielsweise folgende Anweisung, die das Feld Strasse an die Tabelle tblMitarbeiter anfügt:
ALTER TABLE tblMitarbeiter ADD Strasse Text(50);
Auch die CONSTRAINT- und die NOT NULL-Klauseln lassen sich hiermit verwenden. Ein neues Fremdschlüsselfeld (etwa das Feld GeschlechtID in der Tabelle tblMitarbeiter) fügen Sie mit folgender Anweisung hinzu:
ALTER TABLE tblMitarbeiter ADD GeschlechtID INTEGER, CONSTRAINT
FKGeschlechtID FOREIGN KEY(GeschlechtID) REFERENCES tblGeschlecht;
Ändern eines Feldes
Das Ändern bestehender Felder erfolgt prinzipiell auf dem gleichen Weg wie das Anlegen neuer Felder. Sie verwenden lediglich das Schlüsselwort ALTER COLUMN statt ADD COLUMN:
ALTER TABLE tblMitarbeiter ALTER COLUMN Vorname TEXT(40);
Mit ALTER TABLE lassen sich nicht nur Feldnamen, sondern auch Datentypen und Feldgrößen ändern. Beachten Sie, dass nicht alle Quell- und Zielfeldtypen kompatibel sind.
Löschen eines Feldes
Beim Löschen von Feldern müssen Sie beachten, dass Felder, die Teil eines Index sind, nur nach Entfernen des Index oder zusammen mit diesem gelöscht werden können.
Die folgende Anweisung scheitert beispielsweise, wenn das Feld GeschlechtID mit der Tabelle tblGeschlecht verknüpft ist:
ALTER TABLE tblMitarbeiter DROP GeschlechtID;
In diesem Fall entfernen Sie zunächst den Index:
ALTER TABLE tblMitarbeiter DROP CONSTRAINT FKGeschlechtID;
Anschließend funktioniert die obige Anweisung zum Löschen des Feldes.
Nächster Abschnitt:
8.5.4 Tabelle löschen
|