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')), ... );
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.