我已经使用此触发器来限制那些出生日期小于18的记录的插入。这对于新插入工作正常,但我也想限制修改出生日期设置为小于18.请告诉我该怎么做?
DELIMITER $$
CREATE TRIGGER `test_candidate_before_insert` BEFORE INSERT ON `candidate` FOR EACH ROW
BEGIN
IF
DATEDIFF(CURDATE(), NEW.date_of_birth)/365 < 18
THEN
SIGNAL SQLSTATE '12345';
END IF;
END$$
DELIMITER ;
答案 0 :(得分:1)
您需要定义一个单独的UPDATE触发器。
答案 1 :(得分:1)
只需创建另一个更新触发器:
DELIMITER $$
CREATE TRIGGER `test_candidate_before_update` BEFORE UPDATE ON `candidate` FOR EACH ROW
BEGIN
IF
DATEDIFF(CURDATE(), NEW.date_of_birth)/365 < 18
THEN
SIGNAL SQLSTATE '12345';
END IF;
END$$
DELIMITER ;