检查如何工作,我有问题

时间:2019-09-05 05:03:01

标签: mysql sql

我正在使用检查约束来检查该条目是男性还是女性,但是由于某种原因它无法正常工作。操作系统:Ubuntu 18.04 LTS

我尝试修改所有代码,但无济于事

 ALTER TABLE BANK ADD GENDER VARCHAR(1) 
      CHECK(GENDER = 'M' OR 'F' OR 'T') AFTER NAME;

我只想在条目中输入M和F,

1 个答案:

答案 0 :(得分:2)

MySQL在8之前的版本中不支持check。它已被解析,但不执行任何操作。

您可以使用触发器检查值,如果值不符合预期,则中止触发器中的执行。

delimiter //
  CREATE TRIGGER BANK_check_gender BEFORE INSERT ON BANK 
  FOR EACH ROW
  BEGIN
   IF NEW.GENDER not in ('M', 'F', 'T')
   THEN
       SIGNAL sqlstate '45000' 
       SET message_text = 'invalid gender';
   END IF
END
DELIMITER ;