Löschen von Einschränkungen¶
Einschränkungen werden mit den folgenden ALTER TABLE-Befehlen gelöscht:
ALTER TABLE … DROP CONSTRAINT löscht die angegebene Einschränkung explizit. Ähnlich wie beim Ändern von Einschränkungen können Sie die Einschränkung durch den Einschränkungsnamen oder die Spaltendefinition sowie den Einschränkungstyp identifizieren. Bei einem Primärschlüssel kann die Einschränkung auch mit dem Schlüsselwort PRIMARY KEY identifiziert werden.
ALTER TABLE … DROP COLUMN löscht eine Spalte und die verbundenen Einschränkungen.
Wenn ein Primärschlüssel oder ein eindeutiger Schlüssel gelöscht wird, werden standardmäßig auch alle Fremdschlüssel gelöscht, die auf den gelöschten Schlüssel verweisen, sofern nicht die Löschoption RESTRICT angegeben ist.
Außerdem werden Einschränkungen gelöscht, wenn die zugehörigen Tabellen, Schemas oder Datenbanken gelöscht werden. Die DROP-Befehle unterstützen die Löschoptionen CASCADE | RESTRICT.
Bemerkung
Sie können gelöschte Tabellen, Schemas und Datenbanken mithilfe des Befehls UNDROP wiederherstellen. Gelöschte Spalten und Einschränkungen können nicht wiederhergestellt werden.
Löschen von Einschränkungen¶
Sie können die Einschränkungen UNIQUE, PRIMARY KEY, FOREIGN KEY und CHECK unter Verwendung des Befehls ALTER TABLE … DROP CONSTRAINT explizit löschen:
Wenn Sie bei diesen Einschränkungen eine FOREIGN KEY-Einschränkung oder eine Einschränkung eines primären oder eindeutigen Schlüssels löschen, der keine Fremdschlüsselverweise aufweist, werden die Einschränkungen direkt gelöscht.
Die standardmäßige Löschoption ist CASCADE. Dies bedeutet, dass beim Löschen eines eindeutigen oder primären Schlüssels mit Fremdschlüsselverweisen alle verweisenden Fremdschlüssel zusammen mit dem eindeutigen oder primären Schlüssel gelöscht werden.
Wenn die Löschoption RESTRICT angegeben ist, wird beim Löschen eines primären oder eindeutigen Schlüssels ein Fehler zurückgegeben, wenn Fremdschlüssel vorhanden sind, die auf die zu löschenden Schlüssel verweisen.
Löschen von Spalten¶
Das Löschen von Spalten mit ALTER TABLE … DROP COLUMN … ähnelt dem Löschen von Einschränkungen:
Für PRIMARY KEY, UNIQUE und FOREIGN KEY ist die standardmäßige Löschoption CASCADE. Dies bedeutet, dass alle Einschränkungen, die die zu löschende Spalte enthalten, ebenfalls gelöscht werden. Wenn andere FOREIGN KEY-Einschränkungen auf einen Primärschlüssel oder eindeutigen Schlüssel verweisen, der die Spalte enthält, werden alle verweisenden Fremdschlüssel gelöscht. Wenn die Option RESTRICT angegeben ist, wird ein Fehler zurückgegeben, wenn die Spalte primäre oder eindeutige Schlüssel mit Fremdschlüsselverweisen enthält. Der Löschbefehl ist nur dann erfolgreich, wenn für die gelöschte Spalte keine Einschränkungen definiert sind und sich keine Einschränkungen auf sie beziehen.
Für CHECK-Einschränkungen, die auf eine einzelne Spalte verweisen, lautet die standardmäßige Löschoption CASCADE. Für CHECK-Einschränkungen, die auf mehrere Spalten verweisen, lautet die standardmäßige Löschoption allerdings RESTRICT, die ein versehentliches Löschen von Einschränkungen verhindert, die für die Datenintegrität erforderlich sind.
Löschen von Tabellen, Schemas und Datenbanken¶
Der Befehl DROP löscht die angegebene Tabelle, das angegebene Schema oder die angegebene Datenbank und kann auch verwendet werden, um alle mit dem Objekt verknüpften Einschränkungen zu löschen:
Ähnlich wie beim Löschen von Spalten und Einschränkungen ist CASCADE die Standardoption zum Löschen. Alle Einschränkungen, die zu dem Objekt gehören oder auf das Objekt verweisen, werden ebenfalls gelöscht.
Wenn zum Beispiel beim Löschen einer Datenbank die Datenbank einen primären oder eindeutigen Schlüssel enthält, auf den ein Fremdschlüssel aus einer anderen Datenbank verweist, werden auch die verweisenden Fremdschlüssel gelöscht.
Wenn das Objekt später wiederhergestellt wird, werden alle zuvor gelöschten Einschränkungen wiederhergestellt.
Falls die Option RESTRICT angegeben ist, wird ein Fehler zurückgegeben, wenn die Einschränkung PRIMARY KEY oder UNIQUE unter dem Objekt Fremdschlüsselverweise aufweist.