我正在使用检查约束来检查该条目是男性还是女性,但是由于某种原因它无法正常工作。操作系统:Ubuntu 18.04 LTS
我尝试修改所有代码,但无济于事
ALTER TABLE BANK ADD GENDER VARCHAR(1)
CHECK(GENDER = 'M' OR 'F' OR 'T') AFTER NAME;
我只想在条目中输入M和F,
答案 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 ;