【发布时间】:2015-08-18 14:13:48
【问题描述】:
检查约束不起作用
CREATE TABLE IF NOT EXISTS supervisor (
sup_id INT(3) NOT NULL,
sup_name VARCHAR(30) NOT NULL,
gen VARCHAR(1) NOT NULL CHECK (gen='M' or gen='F'),
dep_id INT(4),
PRIMARY KEY (sup_id),
INDEX (dep_id),
FOREIGN KEY (dep_id)
REFERENCES department(dep_id)
ON UPDATE CASCADE ON DELETE RESTRICT
);
我也试过了:
CONSTRAINT chk_supervisor_gen CHECK ('M' or 'F')
这些都没有阻止输入此信息
INSERT
INTO supervisor (sup_id, sup_name, gen, dep_id)
VALUES
(1, 'hello', 'G', 1);
【问题讨论】:
-
据我所知 MySQL 不支持
CHECK约束。CHECK子句被解析但被所有存储引擎忽略。
标签: mysql sql check-constraints