首先,我创建了一个表,例如
CREATE TABLE Customer ( SD integer CHECK (SD > 0), Last_Name varchar (30), First_Name varchar(30) );
然后在该表中插入值
INSERT INTO Customer values ('-2','abc','zz');
MySQL没有显示错误,它接受了值。
如果您使用MySQL 8.0.15或更早版本,则MySQL参考手册会说:
该CHECK子句已解析,但所有存储引擎均将其忽略。
尝试触发…
mysql> delimiter // mysql> CREATE TRIGGER trig_sd_check BEFORE INSERT ON Customer -> FOR EACH ROW -> BEGIN -> IF NEW.SD<0 THEN -> SET NEW.SD=0; -> END IF; -> END -> // mysql> delimiter ;
希望能有所帮助。