Definieren und Modifizieren von Check Constraints

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Anzeigen und Ändern der Datenbankstruktur > Gestalten von Tabellen im Design Editor >

Definieren und Modifizieren von Check Constraints

Check Constraints können sowohl auf Tabellenebene als auch auf Spaltenebene definiert werden und stellen sicher, dass nur gültige Daten in eine bestimmte Spalte einer Tabelle eingegeben werden. Wenn die Bedingung nicht erfüllt wird, kann die entsprechende Spalte nicht aktualisiert werden und neue Zeilen können nicht hinzugefügt werden. DatabaseSpy gibt im Fenster "Meldung" eine entsprechende Meldung aus.

 

app_output-check-constraint-failed

 

Anmerkung:Das Hinzufügen von Check Constraints wird für folgende Datenbanken nicht unterstützt: SQLite, MySQL, SQLite.

 

 

So definieren Sie einen Check Constraint im Design Editor:

1.Wählen Sie eine der folgenden Methoden:

 

Klicken Sie mit der rechten Maustaste in die Tabelle und wählen Sie Neu einfügen | Check Constraint aus dem Kontextmenü.
Erweitern Sie den Abschnitt "Check Constraints", indem Sie auf das Dreieck am rechten Rand der Abschnittsüberschrift klicken und klicken Sie auf das Symbol Neuen Check Constraint erstellen ic_add-column in der Spalte "Check Constraint".

 

Daraufhin wird ein neuer Check Constraint hinzugefügt und zur Bearbeitung markiert. Standardmäßig lautet der Name des Sekundärschlüssels <generiert>, d.h. der Name wird von der Datenbank automatisch generiert. Dadurch wird die Eindeutigkeit des Namens in der Datenbank gewährleistet. Falls erforderlich, können Sie die generierten Namen außer Kraft setzen. Geben Sie dazu anstelle von <generiert>, einen beschreibenden Namen ein und drücken Sie die Eingabetaste.

 

Wenn Sie den generierten Namen durch einen benutzerdefinierten Namen ersetzen, muss der neue Name eindeutig sein; andernfalls treten bei der Ausführung des Datenbank-Change Script Fehler auf.

 

 

2.Geben Sie in der Spalte "Ausdruck" den Ausdruck ein, der geprüft werden soll, wenn Daten in die Datenbank geschrieben werden und drücken Sie die Eingabetaste.

dbs_chk_constraint

Wie immer, wenn Änderungen an der Datenbankstruktur erfolgen, wird ein Change Script generiert, das ausgeführt werden muss, damit der Check Constraint tatsächlich in der Datenbank erstellt wird. DatabaseSpy führt eine Validierung des Ausdrucks durch, der für den Check Constraint verwendet wird. Während Sie einen Check Constraint im Design Editor definieren, werden im Fenster "Datenbankstruktur Change Script" Kommentare angezeigt wenn der Ausdruck ungültig ist.

 

 

cs_CK-invalid-expression

 

Die folgenden Punkte werden validiert und durch entsprechende Nachrichten im Change Script angezeigt:

 

Fehlender Ausdruck
Ungültiger Identifier
Textkonstante oder numerische Konstante entspricht nicht Spaltendatentyp
Spaltendatentypen stimmen nicht überein
Ungültiger Ausdruck
"IS NOT NULL"-Klausel betrifft eine Spalte, in der NULL-Werte zulässig sind

 

Anzeige von Check Constraints

Im Design Editor werden Check Constraints auf Tabellenebene in einem eigenen Abschnitt angezeigt, wo sie editiert werden können und Sie zusätzliche Check Constraints hinzufügen bzw. nicht benötigte löschen können.

 

design_check-constraints

 

Spalten, denen ein Check Constraint zugewiesen ist, sind im Design Editor und im Online Browser mit dem Symbol für Check Constraints ic_check-column gekennzeichnet. Check Constraints auf Tabellenebene können im Fenster "Eigenschaften" bearbeitet werden. Bitte beachten Sie, dass sie nicht im Abschnitt "Check Constraints" der Tabelle aufscheinen. Um den Namen und die Definition dieser Constraints anzuzeigen, müssen Sie die Spalteneigenschaften im Fenster "Eigenschaften"anzeigen.

 

Im Online Browser erscheinen Check Constraints im Unterordner Constraints der Tabelle oder Spalte, abhängig davon, ob der Constraint auf Tabellenebene oder auf Spaltenebene definiert wurde.

 

Check Constraints auf Tabellenebene erscheinen im Ordner Constraints der Tabelle, der sie zugeordnet sind.

 

ob_check-constraint-table

 

Check Constraints auf Spaltenebene werden unter dem Ordner Constraints der Spalte angezeigt. Beachten Sie, dass es in diesem Fall auf Tabellenebene keinen Ordner Constraints gibt

 

ob_check-constraint-col

 

Modifizieren von Check Constraints

Sie können einen Check Constraint umbenennen, löschen oder seinen Ausdruck ändern. Beachten Sie, dass der Check Constraint immer zuerst gelöscht und dann mit der neuen Definition neu erstellt wird. Die entsprechende SQL-Anweisung wird automatisch im Fenster "Datenbankstruktur Change Script" generiert, wenn Sie die Definition des Check Constraint im Design Editor modifizieren.

 

Wenn Sie eine Spalte umbenennen, die im Ausdruck eines Check Constraint verwendet wird, wird der Check Constraint von DatabaseSpy im Changes Script zum Umbenennen der Spalte automatisch aktualisiert.

 

cs_alter-CK

 

Wird eine Spalte gelöscht, so werden sämtliche Check Constraints, die diese Spalte referenzieren, ebenfalls gelöscht.

 

Hinzufügen von Check Constraints mit Hilfe von SQL

Wenn in der Tabelle bereits Check Constraints vorhanden sind, können Sie neue Check Constraints auch hinzufügen indem Sie auf einen bestehenden Check Constraint rechtsklicken und eine Anweisung erzeugen, die die Eigenschaften des bestehenden Constraints als Grundlage heranzieht. Nachdem Sie die Eigenschaften entsprechend geändert und die SQL Anweisung ausgeführt haben, wird ein neuer Check Constraint zur Datenbank hinzugefügt.

 

So fügen Sie mit Hilfe von SQL einen Check Constraint zu einer Tabelle hinzu:

1.Stellen Sie eine Verbindung zur Datenbank her und zeigen Sie die entsprechende Datenquelle im Online Browser an.
2.Erweitern Sie die Tabelle, der Sie einen Check Constraint hinzufügen möchten und rechtsklicken Sie auf einen bestehenden Constraint im Ordner "Constraints".
3.Wählen Sie In neuem SQL Editor anzeigen | Add aus dem Kontextmenu oder ziehen Sie den Constraint mit gedrückter rechter Maustaste in ein offenes SQL Editor-Fenster und wählen Sie Add aus dem Pop-Fenster. Eine ALTER TABLE Anweisung wird im SQL Editor-Fenster erzeugt.
4.Bearbeiten Sie die Anweisung wie folgt:

 

a)Geben Sie nach dem "ALTER TABLE"-Abschnitt der Anweisung den Pfad der Tabelle ein, die geprüft werden soll.
b)Geben Sie nach dem "ADD CONSTRAINT"-Abschnitt der Anweisung den Namen des neuen Constraints ein.
c)Bearbeiten Sie den Abschnitt "CHECK (Ausdruck)" indem Sie den Ausdruck eingeben, der geprüft werden soll, wenn die Tabelle aktualisiert wird.

 

5.Klicken Sie auf die Schaltfläche Ausführen ic_execute-sql, um die Anweisung auszuführen und den neuen Check Constraint zur Datenbank hinzuzufügen.
6.Klicken Sie im Online Browser mit der rechten Maustaste auf die Datenbank und wählen Sie Aktualisieren aus dem Kontextmenü.

© 2019 Altova GmbH