繁体   English   中英

数据库触发器如何将值的总和从一个表插入到另一个表?

[英]Database trigger How to insert sum of values, from one table to another?

我认为最好的方法是触发器? 任何的想法?

我应该插入的总和payment_amount seperately从表支付每个用户名,以total_moneytotal_balance应该全自动每次插入,当新velues插入到表付款

例如:用户“John”填写了他的账户 2 次 100$ 和 50$,他的账户中总计 150$

表中的示例:

表:付款

 ID      username     payment_amount    Status  
+-------+-------------+-------------+-----------+
|   1   |  John       |     100     | Complete  |
+-------+-------------+-------------+-----------+
|   2   |  John       |     50      | Complete  |
+-------+-------------+-------------+-----------+
|   3   |  Alex       |     100     | Complete  |
+-------+-------------+-------------+-----------+

表:total_balance

 ID      username      total_money      
+-------+-------------+-------------+
|   1   |  John       |     150     | 
+-------+-------------+-------------+
|   2   |  Alex       |     100     |
+-------+-------------+-------------+

我建议不要保留冗余数据。 当出现不一致时,这可能是灾难的秘诀。 我建议你使用一个视图,它会给你总和。

DROP TABLE total_balance;

CREATE VIEW total_balance
AS
SELECT p.username,
       sum(p.payment_amount) total_money
       FROM payments p
       GROUP BY p.username;

或者,如果您只想汇总已完成的付款:

DROP TABLE total_balance;

CREATE VIEW total_balance
AS
SELECT p.username,
       sum(p.payment_amount) total_money
       FROM payments p
       WHERE p.status = 'Complete'
       GROUP BY p.username;

视图中的数字将始终准确并反映当前情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM