My table
CREATE TABLE STUDENT (
BCN INT not null,
Stname varchar(50) not null,
Sex char(1) not null ,
primary key (BCN));
From CREATE TABLE:
The
CHECK
clause is parsed but ignored by all storage engines.
Second:
CREATE TRIGGER SexCheck BEFORE INSERT ON STUDENT
FOR EACH ROW
BEGIN
IF New.Sex NOT IN('F', 'M') THEN
SIGNAL SQLSTATE '10000'
SET MESSAGE_TEXT = 'check constraint on Student.Sex failed';
END IF;
END;
INSERT INTO STUDENT(Sex) VALUES ('B');
-- check constraint on Student.Sex failed
SqlFiddleDemo
Use the MySQL ENUM type. "An ENUM is a string object with a value chosen from a list of permitted values that are enumerated explicitly in the column specification at table creation time."
sex ENUM ('M', 'F')