Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenbanken erstellen » Datenintegrität gewährleisten » Tabellen- und Spalten-Integritätsregeln benutzen

 

CHECK-Integritätsregeln in Spalten verwenden

Eine CHECK-Bedingung wird eingesetzt, um sicherzustellen, dass die Werte in einer Spalte bestimmten Kriterien oder Regeln entsprechen. Diese Regeln oder Kriterien können erforderlich sein, um zu überprüfen, dass die Daten gültig sind, aber es kann sich auch um strengere Regeln handeln, die die Richtlinien und Prozeduren des Unternehmens widerspiegeln. CHECK-Bedingungen bei einzelnen Spaltenwerten sind nützlich, wenn nur ein reduzierter Bereich von Werten für die betreffende Spalte zulässig ist.

Sobald eine CHECK-Bedingung eingesetzt wird, werden zukünftige Werte entsprechend der Bedingung geprüft, bevor eine Zeile geändert wird. Wenn Sie einen Wert aktualisieren, der eine Prüf-Integritätsregel hat, werden die Integritätsregeln für diesen Wert sowie für den Rest der Zeile überprüft.

Sie können auch Domänen CHECK-Integritätsregeln zuordnen. Weitere Hinweise finden Sie unter CHECK-Integritätsregeln von Domänen erben.

Hinweis

CHECK-Tests in der Spalte schlagen fehl, wenn die Bedingung den Wert FALSE zurückgibt. Wenn die Bedingung den Wert UNKNOWN zurückgibt, hat dies die gleiche Wirkung wie die Rückgabe des Werts TRUE, und der Wert wird erlaubt.

Weitere Hinweise zu gültigen Suchbedingungen finden Sie unter Suchbedingungen.

Beispiel 1

Sie können eine bestimmte Formatierungsanforderung erzwingen. Eine Tabelle enthält z.B. eine Spalte für Telefonnummern, und Sie möchten sicherstellen, dass alle Benutzer die Nummern auf dieselbe Weise eingeben. Bei nordamerikanischen Telefonnummern könnten Sie folgende Integritätsregel benutzen:

ALTER TABLE Customers
ALTER Phone
CHECK ( Phone LIKE '(___) ___-____' );

Wenn diese CHECK-Bedingung eingesetzt wird und Sie versuchen, etwa die Telefonnummer 9835 einzugeben, wird diese Änderung nicht erlaubt.

Beispiel 2

Sie können dafür Sorge tragen, dass der Eintrag einem von einer begrenzten Anzahl von Werten entspricht. Wenn Sie z.B. sicherstellen wollen, dass in der Spalte "City" nur eine Stadt eingegeben werden kann, die zu einer bestimmten Gruppe von zulässigen Städten gehört (etwa die Städte, in denen das Unternehmen Büros hat), könnten Sie eine Integritätsregel wie die folgende einsetzen:

ALTER TABLE Customers
ALTER City
CHECK ( City IN ( 'Stadt_1', 'Stadt_2', 'Stadt_3' ) );

Standardmäßig berücksichtigen Zeichenfolgenvergleiche die Groß- und Kleinschreibung nicht, es sei denn, die Datenbank wurde ausdrücklich so erstellt, dass dies berücksichtigt wird.

Beispiel 3

Sie können sicherstellen, dass ein Datum oder eine Zahl innerhalb eines bestimmten Bereiches liegen. Sie könnten z.B. fordern, dass die Werte in der Spalte "StartDate" einer Mitarbeitertabelle zwischen dem Gründungsdatum des Unternehmens und dem aktuellen Datum liegen:

ALTER TABLE Employees
ALTER StartDate
CHECK ( StartDate BETWEEN '1983/06/27'
                   AND CURRENT DATE );

Sie können verschiedene Datumsformate verwenden. Das in diesem Beispiel verwendete Format JJJJ/MM/TT hat den Vorteil, dass es immer erkannt wird, unabhängig von der aktuellen Einstellung der Optionen.