SQL CHECKRestricciones
Restricción SQL CHECK
La restricción CHECK se utiliza para limitar el rango de valores en una columna.
Si se define una restricción CHECK en una sola columna, esa columna solo permitirá valores específicos.
Si se define una restricción CHECK en una tabla, esta restricción limitará los valores en columnas específicas en función de los valores de otras columnas de la fila.
Restricción SQL CHECK en CREATE TABLE
El siguiente SQL crea una restricción CHECK en la columna "P_Id" al crear la tabla "Persons". La restricción CHECK especifica que la columna "P_Id" solo debe contener números enteros mayores que 0.
MySQL:
(
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:
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Para nombrar una restricción CHECK y definir una restricción CHECK en múltiples columnas, utilice la siguiente sintaxis SQL:
MySQL / SQL Server / Oracle / MS Access:
(
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')
)
Restricción SQL CHECK en ALTER TABLE
Cuando la tabla ya ha sido creada, para crear una restricción CHECK en la columna "P_Id", utilice el siguiente SQL:
MySQL / SQL Server / Oracle / MS Access:
ADD CHECK (P_Id>0)
Para nombrar una restricción CHECK y definir una restricción CHECK en múltiples columnas, utilice la siguiente sintaxis SQL:
MySQL / SQL Server / Oracle / MS Access:
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
Eliminar la restricción CHECK
Para eliminar una restricción CHECK, utilice el siguiente SQL:
SQL Server / Oracle / MS Access:
DROP CONSTRAINT chk_Person
MySQL:
DROP CHECK chk_Person