触发器1:当contact表插入一行数据时,更新user表中的request

DELIMITER $$ CREATE TRIGGER trigger1 AFTER INSERT ON contact FOR EACH ROW BEGIN IF NEW.status = 1 AND (SELECT contactable FROM user WHERE username = NEW.contact) = 1 THEN UPDATE user SET request = request + 1 WHERE username = NEW.contact; END IF; END$$ DELIMITER ;

触发器2:当contact表更新status为2时,更新user表中的contacts

DELIMITER $$ CREATE TRIGGER trigger2 AFTER UPDATE ON contact FOR EACH ROW BEGIN IF NEW.status = 2 THEN UPDATE user SET contacts = contacts + 1 WHERE username = NEW.contact; END IF; END$$ DELIMITER ;

触发器3:当contact表插入第一条数据时,插入反向数据

DELIMITER $$ CREATE TRIGGER trigger3 AFTER INSERT ON contact FOR EACH ROW BEGIN IF (SELECT COUNT(*) FROM contact WHERE username = NEW.contact) = 0 THEN INSERT INTO contact (username, contact, status) VALUES (NEW.contact, NEW.username, 0); END IF; END$$ DELIMITER ;

用mysql写触发器当contact表插入一行数据时包括username、contact、status三列如果user表中contactable=1并且user表中的username和contact中的contact一致就更新user表username这一行的request=request+1;当contact更新时如果contact表中contact所在行的status被更新为2就更新user表

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

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