如果NEW的值为空,那么会导致触发器中的条件判断无法进行,从而可能导致触发器的逻辑出现问题。为了避免这种情况,可以在触发器中添加判断,确保NEW的值不为空才执行相关的操作。例如:

DELIMITER // CREATE TRIGGER update_bbb_number BEFORE UPDATE ON aaa FOR EACH ROW BEGIN IF NEW IS NOT NULL AND NEW.status = 0 THEN UPDATE bbb SET number=number+1 WHERE user=NEW.user; ELSE SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Cannot update bbb table. Status in aaa table is not 0 or NEW is NULL.'; END IF; END // DELIMITER ;

mysql触发器中NEW的值为空;DELIMITER CREATE TRIGGER update_bbb_numberBEFORE UPDATE ON aaaFOR EACH ROWBEGIN IF NEWstatus = 0 THEN UPDATE bbb SET number=number+1 WHERE user=NEWuser; ELSE SIGNA

原文地址: https://www.cveoy.top/t/topic/bAhB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录