我正在使用检查约束来检查条目是男性还是女性,但由于某种原因它不起作用。操作系统:Ubuntu 18.04 LTS
我尝试修改代码的每一点,但没有任何效果
ALTER TABLE BANK ADD GENDER VARCHAR(1)
CHECK(GENDER = 'M' OR 'F' OR 'T') AFTER NAME;
我只想要条目中的 M 和 F,没有其他内容。
最佳答案
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 ;
关于mysql - 检查如何进行,我遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57798697/