Restricción CHECK en SQL

Restricción CHECK en SQL

La restricción CHECK se utiliza para limitar el rango de valores en una columna.

Si se define una restricción CHECK para una columna individual, solo se permitirán valores específicos en esa columna.

Si se define una restricción CHECK para una tabla, esta restricción limitará los valores en las columnas específicas.

Restricción CHECK de SQL en CREATE TABLE

El siguiente SQL crea una restricción CHECK en la columna "Id_P" al crear la tabla "Persons". La restricción CHECK especifica que la columna "Id_P" debe contener solo enteros mayores a 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 necesita nombrar la restricción CHECK y definir restricciones CHECK para múltiples columnas, utilice la siguiente sintaxis 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')
)

Restricción CHECK de SQL en ALTER TABLE

Si crea una restricción CHECK para la columna "Id_P" en una tabla ya existente, utilice el siguiente SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (Id_P>0)

Si necesita nombrar la restricción CHECK y definir restricciones CHECK para múltiples columnas, utilice la siguiente sintaxis SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Anular restricción CHECK

Si desea anular la restricción CHECK, utilice el siguiente SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person