我正在为我的数据库中的一个字段创建检查条件。在名为student的表中,我有一个性别字段。此字段应接受两个值“M”或“F”中的一个。我像这样创建了一个触发器:
DELIMITER $$
CREATE TRIGGER `test_before_insert` BEFORE INSERT ON `student`
FOR EACH ROW
BEGIN
IF NEW.Gender<>'M' OR NEW.Gender<>'F' THEN
SIGNAL SQLSTATE '12345'
SET MESSAGE_TEXT = 'should be M or F';
END IF;
END$$
DELIMITER ;
触发器已创建,但字段'Gender‘不接受包括M或F在内的任何值。
发布于 2017-02-22 08:46:31
你的情况是错误的。这总是正确的。使用
IF NEW.Gender not in ('M', 'F') THEN
或使用
IF NEW.Gender<>'M' AND NEW.Gender<>'F' THEN
https://stackoverflow.com/questions/42386569
复制