Vincolo CONTROLLO SQL
Vincolo CONTROLLO SQL
Il CHECK
vincolo viene utilizzato per limitare l'intervallo di valori che può essere inserito in una colonna.
Se si definisce un CHECK
vincolo su una colonna, verranno consentiti solo determinati valori per questa colonna.
Se si definisce un CHECK
vincolo su una tabella, è possibile limitare i valori in alcune colonne in base ai valori in altre colonne nella riga.
CONTROLLO SQL su CREATE TABLE
L'SQL seguente crea un CHECK
vincolo sulla colonna "Età" quando viene creata la tabella "Persone". Il CHECK
vincolo garantisce che l'età di una persona deve avere 18 anni o più:
MySQL:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
SQL Server/Oracle/Accesso MS:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
Per consentire la denominazione di un CHECK
vincolo e per definire un
CHECK
vincolo su più colonne, utilizzare la seguente sintassi SQL:
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')
);
CONTROLLO SQL su ALTER TABLE
Per creare un CHECK
vincolo sulla colonna "Età" quando la tabella è già stata creata, utilizzare il seguente SQL:
MySQL/SQL Server/Oracle/MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
Per consentire la denominazione di un CHECK
vincolo e per definire un
CHECK
vincolo su più colonne, utilizzare la seguente sintassi SQL:
MySQL/SQL Server/Oracle/MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
RILASCIA un vincolo CHECK
Per eliminare un CHECK
vincolo, utilizzare il seguente SQL:
SQL Server/Oracle/Accesso MS:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;