MySQL触发器 - 在table1中插入时更新table2

时间:2017-04-18 18:36:28

标签: mysql sql triggers sql-insert

我想要做的是在用户的帐户下添加一些信用额度(用户信用额的10%)到每个第3,第6,第9和第12(不是更多)用户添加到数据库中link(但邀请链接在这里并不重要 - 每个用户都有索引列,其中包含其邀请者的ID)。

所以这样的事情(抱歉为“伪代码”,我从来没有使用触发器,可能不会很快,所以我不知道如何正确编写它):

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 个答案:

答案 0 :(得分: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 ;