DROP TABLE löscht eine Basistabelle und die zugehörigen Indizes.
Das Löschen einer Basistabelle entzieht dem aktuellen Berechtigungsschlüssel alle Tabellen und Spalten-Privilegien für diese Basistabelle. Tabellen- und Spalten-Privilegien, die weitergegeben wurden, werden ebenfalls entzogen.
Welche Basistabellen definiert sind, erfahren Sie im View BASE_TABLES des INFORMATION_SCHEMA (siehe Kapitel „Informationsschemata").
Mit DROP TABLE können auch BLOB-Tabellen gelöscht werden. Dabei werden alle enthaltenen BLOB-Objekte gelöscht.
Der aktuelle Berechtigungsschlüssel muss Eigentümer des Schemas sein, zu dem die Tabelle gehört.
DROP TABLE
tabelle [DEFERRED] { CASCADE | RESTRICT }
tabelle
Name der Basistabelle, die gelöscht werden soll.
DEFERRED
Diese Klausel bewirkt ein schnelles Löschen der Tabelle, bei dem nur der zusammenhängende Teil der Tabelle und der zugehörigen expliziten und impliziten Indizes gelöscht werden. Eventuell vorhandene Auslagerungen bleiben erhalten.
Bei der nächsten Reorganisation des Anwender-Spaces mit der Utility-Anweisung REORG SPACE werden alle existierenden Tabellen und Indizes auf dem Anwender-Space neu aufgebaut.
Damit verschwinden auch die nicht gelöschten Auslagerungen.
Informationen zur Speicherstruktur von Basistabellen finden Sie im „ Basishandbuch“.
Bei partitionierten Tabellen gilt die Klausel DEFERRED für alle Partitionen, sie kann nicht auf einzelne Partitionen eingeschränkt werden.
Die Klausel DEFERRED kann nur beim expliziten Löschen angegeben werden. Beim impliziten Löschen, z.B. mit DROP SPACE ... CASCADE, kann sie nicht angegeben werden.
Wenn DEFERRED nur für die Tabelle, nicht aber für die Indizes gelten soll, dann müssen die Indizes zuerst mit DROP INDEX (ohne Angabe von DEFERRED) gelöscht werden. Dann kann die Tabelle mit DROP TABLE ... DEFERRED gelöscht werden.
DEFERRED nicht angegeben:
SESAM/SQL löscht die Tabelle und alle zugehörigen Indizes. Bei sehr großen, zersplitterten Tabellen kann dies zeitaufwändig sein.
CASCADE
Die Basistabelle tabelle und alle zugehörigen Indizes werden gelöscht. Außerdem werdenalle Views, Routinen und Integritätsbedingungen, die sich direkt oder indirekt auf tabelle beziehen, gelöscht.
RESTRICT
Das Löschen der Basistabelle tabelle ist nur eingeschränkt möglich. Die Basistabelle tabelle kann nicht gelöscht werden, wenn sie in einer View-Definition, einer Routine oder in einer Integritätsbedingung einer anderen Basistabelle verwendet wird.
Beispiele
Das Beispiel löscht die Tabelle KUNDE nur dann, wenn zuvor alle Integritätsbedingungen anderer Basistabellen gelöscht wurden, die auf die Tabelle KUNDE verweisen. Außerdem darf die Tabelle KUNDE in keiner View-Definition verwendet werden.
ALTER TABLE kontakt DROP CONSTRAINT ko_knr_ref_kunde CASCADE
ALTER TABLE auftrag DROP CONSTRAINT a_knr_ref_kunde CASCADE
DROP TABLE kunde RESTRICT
Das Beispiel löscht die Tabellen BILDER und BESCHREIBUNG mit allen Indizies, Views und Integritätsbedingungen, die sich auf die Tabellen BILDER und BESCHREIBUNG beziehen.
DROP TABLE bilder CASCADE
DROP TABLE beschreibung CASCADE
Siehe auch
CREATE TABLE, ALTER TABLE