Restrição SQL CHECK
Restrição SQL CHECK
A CHECK
restrição é usada para limitar o intervalo de valores que pode ser colocado em uma coluna.
Se você definir uma CHECK
restrição em uma coluna, ela permitirá apenas determinados valores para esta coluna.
Se você definir uma CHECK
restrição em uma tabela, ela poderá limitar os valores em determinadas colunas com base nos valores de outras colunas na linha.
SQL CHECK em CREATE TABLE
O SQL a seguir cria uma CHECK
restrição na coluna "Age" quando a tabela "Persons" é criada. A CHECK
restrição garante que a idade de uma pessoa deve ser 18 anos ou mais:
MySQL:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
Para permitir a nomeação de uma CHECK
restrição e para definir uma
CHECK
restrição em várias colunas, use a seguinte sintaxe 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')
);
SQL CHECK em ALTER TABLE
Para criar uma CHECK
restrição na coluna "Age" quando a tabela já estiver criada, use o seguinte SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
Para permitir a nomeação de uma CHECK
restrição e para definir uma
CHECK
restrição em várias colunas, use a seguinte sintaxe SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
DROP uma restrição CHECK
Para eliminar uma CHECK
restrição, use o seguinte SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;