簡體   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