Databases Reference
In-Depth Information
Beim kritischen Lesen fällt auf, dass man die Überlegungen
zum DELETE auch zum UPDATE anstellen kann. Dazu ist an-
zumerken, dass der SQL-Standard Möglichkeiten wie ON UP-
DATE CASCADE vorsieht, dieses aber nur bei wenigen großen
Datenbank-Managementsystemen implementiert ist. Die Mög-
lichkeiten und Argumentationen zum Für und Wider lassen
sich dabei direkt von der Diskussion zum DELETE auf eine Dis-
kussion zum UPDATE übertragen.
Vergleichbare Überlegungen wie zu DELETE und UPDATE kann
man auch zum Löschen von Tabellen anstellen. Mit dem Befehl
Fortpflanzung
bei Aktualisie-
rungen
Löschen von Ta-
bellen
DROP TABLE <Tabellenname> RESTRICT
wird die Tabelle mit dem Namen <Tabellenname> nur gelöscht,
wenn es keine anderen Tabellen gibt, die von dieser Tabelle ab-
hängig sind. D. h. es gibt keine andere Tabelle, in der ein
Fremdschlüssel auf die zu löschende Tabelle referenziert. Gibt
es solch eine Tabelle, wird der Löschbefehl nicht durchgeführt.
Die Nutzung des Schlüsselworts RESTRICT macht das Löschen
sehr sicher, da man so nicht zufällig eine zentrale Tabelle mit
vielen Abhängigkeiten löschen kann. Allerdings bedeutet dies
auch für Löschvorgänge, bei denen mehrere Tabellen gelöscht
werden sollen, dass man zunächst die Tabelle herausfinden
muss, auf die es keine Verweise gibt und dann die weiteren Ta-
bellen schrittweise löscht. Dies kann man sich wie eine Kette
von Dominos vorstellen, bei der man vorsichtig die letzten
Dominos entfernt, da man möchte, dass die Dominoschlange
beim Umkippen in eine andere Richtung läuft.
Alternativ gibt es den Befehl
DROP TABLE <Tabellenname> CASCADE
mit dem garantiert wird, dass die Tabelle mit dem Namen <Ta-
bellenname> gelöscht wird. Durch das CASCADE wird ausge-
drückt, dass Tabellen, die Referenzen auf die zu löschende Ta-
belle haben, so verändert werden, dass diese Referenzen ge-
löscht werden. Dies bedeutet konkret, dass Constraints mit
Fremdschlüsseln, die sich auf die zu löschende Tabelle bezie-
hen, mit gelöscht werden. Dabei bleiben aber alle anderen Da-
ten in der vorher abhängigen Tabelle erhalten, man kann sicher
sein, dass die zu löschende Tabelle mit allen Spuren im System
gelöscht wird.
Generell gibt es auch den kürzeren Befehl
125
Search WWH ::




Custom Search