Grundkurs SQL

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:

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.