7.4.2 Die Verwendung von DROP
Bevor wir zum Löschen von Tabellen kommen soll hier noch einmal gezeigt werden, wie ein Tabellenname umbenannt werden kann:
ALTER TABLE ort RENAME TO tabelle_ort
DROP TABLE
Mit dem letzten hier vorgestellten SQL-Befehl DROP
können die erstellten
Datenbankobjekte wieder gelöscht werden. Um zum Beispiel die Tabelle ort (nach der
Namensänderung jetzt tabelle_ort) wieder zu löschen, schreibt man kurz:
DROP TABLE ort
Mit DROP
lässt sich auch folgendes durchführen:
- Spalten entfernen
- Constraints entfernen
In Kombination mit dem schon bekannten Schlüsselwort ALTER TABLE
werden Spalten
und Constraints wieder aus einer Tabelle entfernt. Hier ist es von Vorteil, wenn bei der
Tabellendefinition ein Name für das Constraint vergeben worden ist. Die Beschränkung lässt
sich dadurch sehr leicht entfernen. Die Befehle lauten dann:
ALTER TABLE tabellenName DROP CONSTRAINT name_der_beschraenkung
Auch hier stellt der NOT-NULL
-Constraint eine Ausnahme dar. Um diesen zu entfernen,
sollte die nachfolgende Syntax Verwendung finden. Sie ist aus dem vorherigen Abschnitt bekannt:
ALTER TABLE ort CHANGE ort ort VARCHAR(50) NULL
Wenn wir in der Datenbank noch einmal die Situation mit den beiden Tabellen herstellen, so dass wir Fremdschlüssel und Primärschlüssel haben, können wir als diese mit den folgenden Anweisungen nachträglich entfernen.
Beim Primärschlüssel ist die Angabe des Bezeichners nicht notwenig, da es pro Tabelle nur einen Primärschlüssel (bzw. eine Kombination aus mehr als einen) gibt. Da in einer Tabelle mehrere Fremdschlüssel vorkommen können müssen diese immer mit Angabe des Namens gelöscht werden.
(Bei MySQL scheitert der Versuch ... DROP FOREIGN KEY ...
mit dem Namen des angezeigten
Indexes auszuführen. Wie MySQL (offensichtlich intern automatisch) die Namen der Constraints bildet
kann man nur durch Löschen des Fremdschlüssels von Hand in der Beziehungsübersicht ermitteln)
ALTER TABLE tbl_mitarbeiter DROP FOREIGN KEY tbl_mitarbeiter_ibfk_1; ALTER TABLE ort DROP PRIMARY KEY;
Um die gesamte Spalte aus der Tabelle zu entfernen, muss in SQL diese Befehlsfolge eingegeben werden:
ALTER TABLE ort DROP COLUMN landesbezeichnung
Noch ein Hinweis: mit DESCRIBE tabellenName
ist es möglich sich die Änderungen
der Spaltenspezifikationen anzeigen zu lassen.