SQL Grundkurs 1: Die Sprache erlernen

Constraint löschen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Constraints müssen auch dann entfernt werden, wenn Sie Änderungen an den von Ihnen überprüften Spalten vornehmen möchten. Dazu zählt beispielsweise auch das Ändern des Datentyps. Hier finden Sie die Anleitung dazu.

Transkript

Nicht mehr benötigte Constraints können auch wieder entfernt werden. Wie das funktioniert, sehen Sie in diesem Video. Um Ihnen das zu zeigen, erzeuge ich mir vorerst die zwei Tabellenkategorien und "Schulung" neu. Für die Tabelle "Schulungen" habe ich drei Constraints definiert. Einerseits ein Check Constraint, das prüft, dass der Preis nur einen positiven Wert annehmen kann, dann einen Primärschlüssel für die ID und schließlich einen Fremdschlüssel, der auf die Kategorien verweist. Diese drei Constraints möchte ich nun wieder löschen. Dazu benötige ich eine "Alter Table"-Anweisung. Der Name der Tabelle ist "Wawi.Schulung". Gefolgt wird dies von der Syntax "Drop Constraint". Und hier merken Sie jetzt, warum es sinnvoll ist, bei der Erstellung von Constraints saubere Namen zu vergeben, denn diese Namen benötigen Sie nun, wenn Sie das Constraint löschen möchten. Wenn Sie nämlich diese Namen nicht wissen, können Sie, oder müssen Sie, diese z.B. über die Systemtabellen oder über die graphische Oberfläche eruieren. Haben Sie die Constraints sauber benannt, liegt der Name auf der Hand und Sie brauchen nicht lange zu suchen. Als erstes entferne ich das Check Constraint. Ich kopiere mir hier den Namen dieses Check Constraints und werde diese Anweisung gleich ausführen. Sie sehen, die Erfolgsmeldung "Table Wawi.Schulung geändert", D.h., dieses Constraint ist bereits weg. Bei Oracle und beim SQL Server ist es irrelevant, welchen Constraint-Typ Sie hier löschen, ob das jetzt ein Unique Key, ein Check Constraint, ein Primary Key oder ein Foreign Key ist, Sie verwenden immer dieselbe Syntax. Das einzige, was sich hier ändert, ist der Name des Constraints. Um den Primärschlüssel zu löschen, verwende ich die Anweisung "Drop Constraint PK Schulung" und schon ist dieser Primärschlüssel weg. Ich wiederhole den Vorgang ein drittes Mal, um letztendlich auch noch meinen Fremdschlüssel zu löschen. Damit wir sehen, dass die Erfolgsmeldung wirklich kommt, lösche ich die alte Ausgabe hier weg und starte die Anweisung. Wir sehen: Die Anweisung ist erfolgreich gewesen. D.h., mit diesen drei einfachen Statements haben wir alle drei Constraints dieser Tabelle entfernt. Etwas anders sieht der Vorgang bei MySQL aus. Betrachten wir uns zuerst einmal das Entfernen eines Primärschlüssels und eines Unique Keys. Check Constraints finden wir in dieser Form bei MySQL gar nicht. Auch hier erstelle ich die Tabelle "Patienten" erstmals neu, gemeinsam mit dem Primärschlüssel und dem Unique Key, der dafür sorgt, dass die Sozialversicherungsnummer gemeinsam mit dem Geburtsdatum eindeutig ist. Diese Tabelle ist nun so erzeugt. Wie kann ich nun hier ein Constraint löschen? Anders als bei den anderen beiden Systemen wird nicht eine einheitliche Anweisung verwendet mit dem Zusatz "Drop Constraint", sondern für das Löschen der unterschiedlichen Constraint-Typen unterscheidet sich die Anweisung jeweils leicht. Fangen wir also damit an, den Primärschlüssel zu löschen. Prinzipiell handelt es sich hier auch um die "Alter Table"-Anweisung. "Alter Table Wawi.Patienten" ist ja der Name der Tabelle und der Primärschlüssel wird schlichtweg mit der Anweisung "Drop Primary Key" gelöscht. Ich führe die Anweisung nun aus und Sie sehen, diese ist erfolgreich gewesen. Damit ist der Primärschlüssel weg. Im nächsten Schritt möchte ich den Unique Key löschen. Es gibt jetzt nicht, wie erwartet, die Form "Drop Unique Key". Ein Unique Key ist aber technisch gesehen nichts anderes als ein eindeutiger Index, und deshalb kann er bei MySQL mit der Anweisung "Drop Index" entfernt werden. Was ich hier natürlich auch benötige, ist der Name des Constraints. Warum? Weil erst der Name die Eindeutigkeit schafft. Primary Key, egal wie er heißt, gibt es ja nur einmal pro Tabelle, dann kann ich keinen falschen löschen. Aber ich könnte hier mehrere Unique Keys bei einer Tabelle haben, deshalb muss ich genau definieren, welchen ich löschen möchte und muss daher den Namen mit angeben. Hier sehen Sie den Vorteil, wenn man beim Erstellen saubere Namensvergabe betrieben hat. Nun führe ich diese Anweisung aus und Sie sehen, dass auch diese erfolgreich gewesen ist und damit habe ich den Unique Key entfernt. Nun fehlt uns zum Abschluss nur noch das Löschen eines Fremdschlüssels. Dazu werde ich die Tabellenkategorien und "Schulung" neu erstellen, damit wir einen Fremdschlüssel vorfinden. Als erstes erzeuge ich die "Kategorien" und danach die Tabelle "Schulungen", die einen Fremdschlüssel zu dieser Tabelle hier bekommt. Ich erzeuge die Tabelle, sie gibt es. Hier haben wir einen Fremdschlüssel mit dem Namen "FKSchulungKategorien". Die Anweisung zum Löschen eines Fremdschlüssels sieht folgendermaßen aus: Wieder beginnt sie mit "Alter Table", in dem Fall gefolgt vom Namen der Tabelle "Wawi.Schulung", "Drop" und diesmal geben wir an: "Foreign Key", und zusätzlich müssen wir hier natürlich auch noch den Namen des Foreign Keys angeben, denn eine Tabelle könnte auch mehrere Foreign Keys haben, die auf unterschiedliche Tabellen verweisen. Wir müssen dem System mitteilen, welchen wir löschen müssen. Ich kopiere mir hier den definierten Namen gleich hin und starte diese Anweisung. Auch diese Anweisung ist erfolgreich gewesen. Sie haben in diesem Video gesehen, wie Sie nachträglich bereits erzeugte Constraints wieder entfernen können. Beim Microsoft SQL Server und bei Oracle verwenden Sie dafür die Syntax "Alter Table", "Drop Constraint" gefolgt vom Namen des Constraints. Diese Anweisung ist unabhängig vom Typ des Constraints. Bei MySQL müssen Sie darauf achten, welche Art von Constraint Sie löschen. Einen Foreign Key Constraint löschen Sie mit der Anweisung "Alter Table", "Drop Foreign Key" gefolgt vom Namen. Einen Unique Key löschen Sie mit der Anweisung "Alter Table", "Drop Index", da ein Unique Key einen eindeutigen Index darstellt. Auch hier müssen Sie den Namen des Unique Keys angeben. Einen Primärschlüssel löschen Sie mit der Anweisung "Alter Table", "Drop Primary Key". Da es nur einen Primärschlüssel pro Tabelle geben kann, muss hier kein Name extra angegeben werden.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!