How do Constraints Work?, CHECK (Part 2 of 2)
The format is:
[CONSTRAINT table_constraint_name]
CHECK (condition)
The CHECK can be defined as a column constraint:
CREATE TABLE EMPLOYEE_TBL (
...
SEX CHAR(1) CHECK (IN ('M', 'F')),
... );
The CHECK can be defined as a named table constraint:
CREATE TABLE EMPLOYEE_TBL (
...
SEX CHAR(1) NOT NULL,
...
CONSTRAINT SEX_CHK
CHECK (SEX IN ('M', 'F')),
... );
or
CREATE TABLE EMPLOYEE_TBL (
...
BADGE CHAR(4) NOT NULL,
...
CONSTRAINT BADGE_CHK
CHECK (
(SUBSTRING(BADGE FROM 1 FOR 1) = 'E')
AND
(CAST(SUBSTRING(BADGE FROM 2 FOR 3)
AS INTEGER(BETWEEN 0 AND 999))
... );
> If the CHECK condition is violated, the INSERT or UPDATE will not happen and an error condition will be returned.
> The SQL standard says that CHECK can not be used with CURRENT_DATETIME and CURRENT_USER.
Access, Postgre SQL, and SQL Server can CHECK these values.
> MySQL only handles CHECK constraints, but it can not handle named CHECK constraints.