2017-04-18 127 views
0

我想要做的是向每个第3,第6,第9和第12(不多于)用户添加一些信用(用户信用的10%)到用户帐户在此用户的邀请链接下添加到数据库中(但邀请链接在此不是必需的 - 每个用户都有带邀请者ID的索引列)。MySQL触发器 - 在表格1中插入更新表格

因此,像这样(对不起,“伪”,我从来没有使用触发,可能不会致使有任何不久,所以我不知道如何把它写正确):

UPDATE accounts.credit = accounts.credit + (accounts.credit/10) 
ON INSERT INTO users (AND when inserted row % 3 == 0 to some user) 
WHERE k_user = this 

或者有没有更简单的方法如何做到这一点?我可以处理PHP,但我想,如果用户访问该站点的脚本只能执行...

回答

1

考虑使用触发器https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

delimiter $$ 
CREATE TRIGGER upd_check AFTER INSERT ON users 
     FOR EACH ROW 
     BEGIN 
      IF NEW.id % 3 = 0 THEN 
       UPDATE accounts SET credit = credit + (credit/10) where k_user = NEW.id 
      END IF; 
     END;$$ 
delimiter ; 
+0

谢谢你的回答!最后,我意识到我不需要在数据库级别做这件事,并通过PHP解决它。只是在处理用户注册的函数末尾添加了一些sql查询。但是你的回答让我对触发器有了一些了解......这可能很方便。 –

相关问题