Sql Trigger条件检查不起作用

时间:2017-02-22 08:45:46

标签: mysql triggers

我正在为数据库中的字段创建检查条件。在名为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 ;  

触发器已创建,但字段为“性别”字样。不接受任何价值,包括M或F.

1 个答案:

答案 0 :(得分:1)

你的病情有误。这总是如此。使用

IF NEW.Gender not in ('M', 'F') THEN

或使用

IF NEW.Gender<>'M' AND NEW.Gender<>'F' THEN