【问题标题】:MySQL trigger - Update table2 on insert in table1MySQL 触发器 - 在 table1 中插入时更新 table2
【发布时间】:2017-04-18 18:36:28
【问题描述】:

我想要做的是在该用户的邀请下将每个第 3、6、9 和 12 个(不是更多)用户添加到数据库中的用户帐户中添加一些信用(用户信用的 10%)链接(但邀请链接在这里不是必需的 - 每个用户都有带有其邀请者 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,但我认为脚本只有在用户访问该站点时才能执行...

【问题讨论】:

    标签: mysql sql triggers sql-insert


    【解决方案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 ;
    

    【讨论】:

    • 感谢您的回答!最后我意识到我不一定需要在数据库级别执行此操作并通过 PHP 解决它。只是在处理用户注册的函数末尾添加了一些 sql 查询。但你的回答让我对触发器有了一些了解……这可能很方便。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多