SQL CHECK begrænsning

SQL CHECK begrænsning

CHECK-begrænsninger bruges til at begrænse værdirangen i kolonner.

Hvis der defineres en CHECK-begrænsning for en enkelt kolonne, vil denne kolonne kun tillade specifikke værdier.

Hvis der defineres en CHECK-begrænsning for en tabel, vil denne begrænsning begrænse værdierne i specifikke kolonner.

SQL CHECK-begrænsning på CREATE TABLE

Følgende SQL opretter en CHECK-begrænsning for kolonnen "Id_P" når tabellen "Persons" oprettes. CHECK-begrænsningen bestemmer, at kolonnen "Id_P" kun må indeholde positive heltal større end 0.

MySQL:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Hvis du har brug for at navngive CHECK-begrænsningen og definere CHECK-begrænsninger for flere kolonner, skal du bruge følgende SQL-syntaks:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)

SQL CHECK-begrænsning på ALTER TABLE

Hvis du opretter en CHECK-begrænsning for kolonnen "Id_P" i en tabel, der allerede eksisterer, skal du bruge følgende SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (Id_P>0)

Hvis du har brug for at navngive CHECK-begrænsningen og definere CHECK-begrænsninger for flere kolonner, skal du bruge følgende SQL-syntaks:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

Annuller CHECK-begrænsning

Hvis du vil annullere CHECK-begrænsningen, skal du bruge følgende SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person