Zurück zu: SQL Tutorial
SQL CHECK Constraint
Mit der CHECK
Einschränkung wird der Wertebereich begrenzt, der in eine Spalte eingefügt werden kann.
Wenn Sie eine CHECK
Einschränkung für eine Spalte definieren, werden für diese Spalte nur bestimmte Werte zugelassen.
Wenn Sie eine CHECK
Einschränkung für eine Tabelle definieren, können die Werte in bestimmten Spalten basierend auf den Werten in anderen Spalten der Zeile begrenzt werden.
SQL Prüfung bei CREATE TABLE
Das folgende SQL erstellt eine CHECK
Einschränkung für die Spalte „Alter“, wenn die Tabelle „Personen“ erstellt wird. Die CHECK
Einschränkung stellt sicher, dass das Alter einer Person 18 oder älter sein muss:
MySQL:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
Um die Benennung einer CHECK
Einschränkung zu ermöglichen und eine CHECK
Einschränkung für mehrere Spalten zu definieren, verwenden Sie die folgende SQL Syntax:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
SQL Prüfung auf ALTER TABLE
Um eine CHECK
Einschränkung für die Spalte „Alter“ zu erstellen, wenn die Tabelle bereits erstellt ist, verwenden Sie das folgende SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
Um die Benennung einer CHECK
Einschränkung zu ermöglichen und eine CHECK
Einschränkung für mehrere Spalten zu definieren, verwenden Sie die folgende SQL Syntax:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
DROP eine CHECK Einschränkung
Um eine CHECK
Einschränkung zu löschen, verwenden Sie das folgende SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;