## DROP-Definition (drop_definition)

Durch Angabe einer DROP-Definition (drop_definition) in der ALTER TABLE-Anweisung können Sie Tabelleneigenschaften löschen.

### Syntax

<drop_definition> ::= DROP <column_name>,... [<cascade_option>] [RELEASE SPACE]
| DROP (<column_name>,...) [<cascade_option>] [RELEASE SPACE]
| DROP CONSTRAINT <constraint_name>
| DROP FOREIGN KEY <referential_constraint_name>
| DROP PRIMARY KEY

### Beispiele

SQL-Tutorial, Tabellen, Constraints, Fremdschlüsselbeziehungen zwischen Tabellen, Primärschlüssel

### Erläuterung

#### DROP <column_name>

Mit DROP <column_name> bzw. DROP (<column_name>,.. .) löschen Sie Spalten.

Jeder Spaltenname muss eine Spalte der durch die ALTER TABLE-Anweisung identifizierten Tabelle sein. Die Spalte darf keine Schlüsselspalte und keine Fremdschlüsselspalte einer referentiellen CONSTRAINT-Definition der Tabelle sein.

In den Metadaten der Tabelle werden die Spalten als gelöscht markiert. Der Platzbedarf der zugrundeliegenden Tabelle verringert sich durch eine DROP-Definition nicht automatisch. Durch RELEASE SPACE wird das Löschen der Spaltenwerte der gelöschten Spalten in allen Zeilen der Tabelle erzwungen. Insbesondere bei Tabellen mit vielen Zeilen ist ein hoher Zeitbedarf zu erwarten, da umfangreiche Kopiervorgänge durchgeführt werden müssen.

Privilegien und Kommentare der zu löschenden Spalte werden gelöscht.

Wenn eine der zu löschenden Spalten als selektierte Spalte in einer View-Definition auftritt, dann wird die angegebene Spalte der View-Tabelle gelöscht.
Wenn diese View-Tabelle in der FROM-Klausel einer weiteren View-Tabelle verwendet wird, so wird das beschriebene Verfahren rekursiv auf diese View-Tabelle angewandt.

Existierende Indizes, die sich auf die zu löschenden Spalten beziehen, werden gelöscht. Der Speicherplatz für die gelöschten Indizes wird frei.

Alle CONSTRAINT-Definitionen, die eine der gelöschten Spalten enthalten, werden gelöscht.

##### <cascade_option>

· Wenn eine der zu löschenden Spalten in der QUERY-Spezifikation einer View-Definition auftritt und keine CASCADE-Option oder die CASCADE-Option CASCADE in der DROP-Definition angegeben ist, dann wird die View-Definition mit allen von ihr abhängigen View-Tabellen, Privilegien und Synonymen gelöscht

· Wenn eine der zu löschenden Spalten in der QUERY-Spezifikation einer View-Definition auftritt und die CASCADE-Bedingung RESTRICT in der DROP-Definition angegeben ist, dann scheitert die ALTER TABLE-Anweisung.

#### DROP CONSTRAINT <constraint_name>

Mit DROP CONSTRAINT <constraint_name> löschen Sie ein Constraint.

Der Constraintname muss eine CONSTRAINT-Definition der Tabelle identifizieren. Diese wird aus den Metadaten der Tabelle entfernt.

#### DROP FOREIGN KEY <referential_constraint_name>

Mit DROP FOREIGN KEY <referential_constraint_name> löschen Sie einen Frendschlüssel.

Wenn DROP FOREIGN KEY angegeben wurde, wird die durch den Namen des referentiellen Constraints referential_constraint_name identifizierte referentielle CONSTRAINT-Definition gelöscht.

#### DROP PRIMARY KEY

Mit DROP PRIMARY KEY löschen Sie einen Schlüssel.

· Die Tabelle muss einen vom Benutzer definierten Schlüssel besitzen.

· Die Tabelle darf nicht mehr als 1023 Spalten besitzen.

· Die maximal zulässige Länge einer Zeile darf 8088 Bytes nicht überschreiten.

· Keine Schlüsselspalte darf referenzierte Spalte (referenced_column) einer referentiellen CONSTRAINT-Definition sein.

Der Schlüssel wird durch die vom Datenbanksystem vergebene Schlüsselspalte SYSKEY ersetzt. Insbesondere bei Tabellen mit vielen Zeilen ist ein hoher Zeitbedarf zu erwarten, da umfangreiche Kopiervorgänge durchgeführt werden müssen.