Vincolo SQL CHECK

Vincolo SQL CHECK

La constraint CHECK viene utilizzata per limitare l'intervallo di valori nella colonna.

Se si definisce una constraint CHECK su una singola colonna, questa colonna accetterà solo valori specifici.

Se si definisce una constraint CHECK su una tabella, questa constraint limiterà i valori specifici su determinate colonne.

Constraint CHECK SQL su CREATE TABLE

Il seguente SQL crea una constraint CHECK per la colonna "Id_P" durante la creazione della tabella "Persons". La constraint CHECK stabilisce che la colonna "Id_P" deve contenere solo interi positivi.

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

Se si desidera dare un nome all'obbligo di controllo CHECK e definire obblighi di controllo per più colonne, utilizzare il seguente sintassi SQL:

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

Obbligo di controllo CHECK SQL su ALTER TABLE

Se si desidera creare un obbligo di controllo CHECK per la colonna "Id_P" quando la tabella esiste già, utilizzare il seguente SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (Id_P>0)

Se si desidera dare un nome all'obbligo di controllo CHECK e definire obblighi di controllo per più colonne, utilizzare il seguente sintassi SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Revoca dell'obbligo di controllo CHECK

Se si desidera revocare l'obbligo di controllo CHECK, utilizzare il seguente SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person