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:

CREATE TABLE Persons
(
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:

CREATE TABLE Persons
(
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:

CREATE TABLE Persons
(
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:

ALTER TABLE Persons
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:

ALTER TABLE Persons
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:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person
Andere Erweiterungen