SQL CHECK-Constraints
SQL CHECK-Constraint
Der CHECK-Constraint wird verwendet, um den Wertebereich einer Spalte einzuschränken.
Wenn Sie einen CHECK-Constraint für eine einzelne Spalte definieren, lässt diese Spalte nur bestimmte Werte zu.
Wenn Sie einen CHECK-Constraint für eine Tabelle definieren, kann er die Werte in bestimmten Spalten basierend auf den Werten anderer Spalten in der Zeile einschränken.
SQL CHECK-Constraint bei CREATE TABLE
Das folgende SQL erstellt beim Anlegen der Tabelle "Persons" einen CHECK-Constraint für die Spalte "P_Id". Der CHECK-Constraint legt fest, dass die Spalte "P_Id" nur Ganzzahlen größer als 0 enthalten darf.
MySQL:
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
SQL Server / Oracle / MS Access:
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Um einen CHECK-Constraint zu benennen und einen CHECK-Constraint für mehrere Spalten zu definieren, verwenden Sie die folgende SQL-Syntax:
MySQL / SQL Server / Oracle / MS Access:
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)
SQL CHECK-Constraint bei ALTER TABLE
Wenn die Tabelle bereits erstellt wurde, verwenden Sie das folgende SQL, um einen CHECK-Constraint für die Spalte "P_Id" zu erstellen:
MySQL / SQL Server / Oracle / MS Access:
ADD CHECK (P_Id>0)
Um einen CHECK-Constraint zu benennen und einen CHECK-Constraint für mehrere Spalten zu definieren, verwenden Sie die folgende SQL-Syntax:
MySQL / SQL Server / Oracle / MS Access:
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
DROP CHECK-Constraint
Um einen CHECK-Constraint zu löschen, verwenden Sie folgenden SQL-Befehl:
SQL Server / Oracle / MS Access:
DROP CONSTRAINT chk_Person
MySQL:
DROP CHECK chk_Person