我有一个包含2个表的数据库。一个表包含有关引用(作业引用)的数据,另一个表包含投票。为了进入投票阶段,您需要5个参考。在另一个数据库中,我必须在有5个引用后更改group_id。
我试图使用类似下面的内容:
CREATE TRIGGER update_group AFTER UPDATE ON refs
FOR EACH ROW
BEGIN
IF (SELECT recruit_id from refs where count(refs) = 5) THEN
UPDATE users.members
SET group_id=10
WHERE member_id=recruit_id;
END;
这样的事情是否可行?如果这不起作用,我的后备是在每5分钟运行一次的cron作业中使用bash脚本,但触发器看起来效率更高(并且是瞬时的)
答案 0 :(得分:0)
您可以使用NEW.
分别在更改后引用受影响的recruit_id
,进行计数并相应地更新外表。
CREATE TRIGGER update_group AFTER UPDATE ON refs
FOR EACH ROW
BEGIN
SELECT @refs_no := count(*) from refs where recruit_id = NEW.recruit_id
IF (@refs_no = 5) THEN
UPDATE users.members
SET group_id=10
WHERE member_id=NEW.recruit_id;
END;