Contrainte CHECK SQL

Contrainte CHECK SQL

La contrainte CHECK est utilisée pour limiter l'éventail des valeurs dans une colonne.

Si une contrainte CHECK est définie pour une seule colonne, cette colonne ne permet que des valeurs spécifiques.

Si une contrainte CHECK est définie pour une table, cette contrainte restreindra les valeurs spécifiques des colonnes spécifiques.

Contrainte CHECK SQL sur CREATE TABLE

Le SQL suivant crée une contrainte CHECK pour la colonne "Id_P" lors de la création de la table "Persons". La contrainte CHECK stipule que la colonne "Id_P" doit ne contenir que des entiers supérieurs à 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)
)

Si vous avez besoin de nommer la contrainte CHECK et de définir des contraintes CHECK pour plusieurs colonnes, utilisez la syntaxe SQL suivante :

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')
)

Contrainte CHECK SQL sur ALTER TABLE

Si vous créez une contrainte CHECK pour la colonne "Id_P" en cas d'existence de la table, utilisez le SQL suivant :

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (Id_P>0)

Si vous avez besoin de nommer la contrainte CHECK et de définir des contraintes CHECK pour plusieurs colonnes, utilisez la syntaxe SQL suivante :

MySQL / SQL Server / Oracle / MS Access:

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

Annuler la contrainte CHECK

Pour annuler la contrainte CHECK, utilisez le SQL suivant :

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person