[英]Database trigger How to insert sum of values, from one table to another?
我认为最好的方法是触发器? 任何的想法?
我应该插入的总和payment_amount
seperately从表支付每个用户名,以total_money
表total_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.